编写程序,从键盘上输入一个四位数,如果四位数各位上的数字均是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 回答
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");
- 3 回答
- 0 关注
- 1638 浏览
添加回答
举报
0/150
提交
取消