为了账号安全,请及时绑定邮箱和手机立即绑定

C语言题目中if语句搞不来。

C语言题目中if语句搞不来。

C C# C++
慕圣1487663 2017-01-03 20:39:10
编写程序,从键盘上输入一个四位数,如果四位数各位上的数字均是0、2、6或8,输出“YES”,否则输出“NO”。求指点哪里出错,一直出现YES,求大神指点。#include<stdio.h>main(){ int m,a,b,c,d;  scanf("%d",&m);   a=m%10;  b=(m/10)%10;  c=m/100;  d=m/1000;if((a='0'&&'2'&&'4'&&'6'&&'8')&&(b='0'&&'2'&&'4'&&'6'&&'8')&&(c='0'&&'2'&&'4'&&'6'&&'8')&&(d='0'&&'2'&&'4'&&'6'&&'8'))printf("YES");elseprintf("NO");}
查看完整描述

3 回答

?
HJim

TA贡献6条经验 获得超8个赞


= 和== 没搞清楚,0和'0'也没搞清楚

查看完整回答
1 反对 回复 2017-01-04
?
JoianSUN

TA贡献5条经验 获得超17个赞

我通过一个假设输入来模拟一下你的程序: 通过注释的方式呈现给你

int m,a,b,c,d; 

scanf("%d",&m);    \\  m = 1234 

 a=m%10;     \\  m = 1234 ;  a = 1234 % 10 = 4

 b=(m/10)%10;   \\   m = 1234 ;  b = 1234 / 10 % 10 = 3 

 c=m/100;     \\   m = 1234 ;  c = 1234 / 100 = 12   (存在问题 1)

\\ 解决问题1 : c = (m/100)%10;   \\ m = 1234 ;  c = 1234 /100 %10 =2 

 d=m/1000;   \\  m = 1234 ;  d = 1234 /1000 =1

if((a='0'&&'2'&&'4'&&'6'&&'8')

&&(b='0'&&'2'&&'4'&&'6'&&'8')

&&(c='0'&&'2'&&'4'&&'6'&&'8')

&&(d='0'&&'2'&&'4'&&'6'&&'8'))   \\ 整段 if 是存在问题的(需要自己去学习一下了)

printf("YES");

else

printf("NO");

查看完整回答
反对 回复 2017-01-03
  • 3 回答
  • 0 关注
  • 1638 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信