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

编写程序,从键盘上输入一个四位数,如果四位数各位上的数字均是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");

else

printf("NO");

}


慕圣1487663
浏览 1639回答 3
3回答

HJim

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

JoianSUN

我通过一个假设输入来模拟一下你的程序: 通过注释的方式呈现给你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 =1if((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");elseprintf("NO");
打开App,查看更多内容
随时随地看视频慕课网APP