第一题,你用的是/,而不是% 这就是为什么错了。你若用/,比如2012 / 4 = 503,而503 不等于0,if() fail,所以进入else。这里就不需要我解释为什么用%而不是/了吧?这是基础知识
第二个改%ld...这两个地方所犯的都是基础错误
第一个:输入函数scanf("%d%d",&a,&b);两个%d中间要加间隔符,不然系统会认为是一个变量处理的。建议scanf("%d,%d",&a,&b); 输入的时候按这种格式输入: 6,15回车
另外,case语句后面多于两个语句的时候建议加上{},这是规范问题,不影响程序运行
第二个:对于long,int等类型的,不建议直接用d=x/10000这种形式,各个编译器不一样,可能会有什么错误。if。。else也要加{}
1,闰年:四年一闰,百年不闰,四百年再闰。case 2:if(a%4==0&&a%100!=0||a%400==0)
2.第二个
#include
void main()
{long x,a,b,c,d;
printf("输入一个五位数:");
scanf("%ld",&x);//此处
a=x%10;
b=x/10%10;
c=x/1000%10;
d=x/10000;
if((a==d)&&(b==c))
printf("是回文数");
else printf("不是回文数");}
case 2:if(a/4==0),应该是a%4,取模
第二个x要是整形才可以