运行程序出来这个
#include<stdio.h>
int main()
{
int m0,y0,d;
scanf("%d,%d",m0,y0);
if(m0==2)
{
if(y0%4==0)
{
if(y0%100==0)
{
if(y0%400==0)
{
d=29;
}
else
{
d=28;
}
}
else
{
d=29;
}
}
}
else if(m0==1||3||5||7||8||10||12)
{
d=31;
}
else if(m0==4||6||9||11)
{
d=30;
}
else if(m0>12)
{
printf("invalid mouth input");
}
else
{
printf("%d",d);
}
return 0;
}
运行出来这个Process exited after 6.712 seconds with return value 3221225477,求查错
你的程序,完全不符合C逻辑
1。scanf("%d,%d",m0,y0);
初学者都会犯的致命错,C的整形输入要用地址的,正确的
scanf("%d,%d",&m0,&y0);
2。if(m0==1||3||5||7||8||10||12)
这个是哪个老师或教材上教你可以这么写的,你细细去看下C的逻辑运算部分,这个表达式能表示什么?
可以告诉你的是,它与
if(m0==1)等价
具体你研究下
正确的只能是
if (m0==1 || m0==3 || m0==5 || m0==7 || m0==8 || m0==10 || m0==12)
3.你的整个if ...else语句,结构有问题,只有所有条件不成立才会有输出。你最后一个肯定不能是else的
先自己改下,有问题再补充
热门标签: