下面程序,输入年份,判断是闰年还是平年

为什么我输入1900,却显示leap,明明应该执行第三个switch里的default 呀。
#include<stdio.h>
#include<stdlib.h>
void main()
{
int year,a,b,c;
scanf("%d",&year); //输入年份
a = year%4;
b = year%100;
c = year%400;
switch(a)
{case 0:switch(b) //若a为0,执行case 0:
{case 0:switch(c) //若b为0,执行case 0:
{case0:printf("leap\n");system("pause");return;//若c为0,打印"leap",程序执行完毕,退出
defalult:printf("nonleap\n");system("pause");return;//若c非0,打印"nonleap",完毕退出
}
default:printf("leap\n");system("pause");return;//若b不为0,打印leap,完毕退出
}

}printf("nonleap\n");//若a不为0,打印"nonleap"
system("pause");
}

建议您用if else语句写。switch语句是在有多个case的时候用比较方便。
而且这不是循环,用break代替return更合适一下。来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-07
好吧。。我找到问题了
switch(c)里面的default 打错了
你妹~~我苦想了半天追问

c=300,不符合条件,应该执行default:也就是输出nonleap,怎么会输出leap呢?

追答

你的default 单词打错了!!!
。。。。

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网