请C语言高手进来帮我看看我的程序是哪里错了
题是这样的:编写一个程序,输入年号和月份,判断该年是否为闰年,并根据给出的月份判断是什么季节和该月有多少天?(①闰年的条件是:年号能被4整除但不能被100整除,或者能被4...
题是这样的:
编写一个程序,输入年号和月份,判断该年是否为闰年,并根据给出的月份判断是什么季节和该月有多少天?(①闰年的条件是:年号能被4整除但不能被100整除,或者能被400整除;②如果是闰年,2月份为29天,否则为28天,其他月份相同;③规定3~5月为春季,6~8月为夏季,9~11月为秋季,1、2和12月为冬季)
我编的程序是这样:
#include<stdio.h>
void main()
{
int x,y;
printf("请输入年号与月份\n");
scanf("%d,%d",&x,&y);
if (x%400==0)||(x%4==0&&x%100==0)
printf("%d年是闰年。\n",x);
else printf("%d年不是闰年。\n",x);
switch(y)
{
case 12:
case 1:
case 2: printf("该季度是:冬季\n"); break;
case 3:
case 4:
case 5: printf("该季度是:春季\n"); break;
case 6:
case 7:
case 8: printf("该季度是:夏季\n"); break;
default: printf("该季度是:秋季\n"); break;
}
switch(y)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: printf("当月天数为31天。\n"); break;
case 4:
case 6:
case 9:
case: 11 printf("当月天数为30天。\n"); break;
default: if (x%400==0)||(x%4==0&&x%100==0) printf("当月天数为29天 else printf("当月天数有28天。\n");
}
}
老是提示有错误 就是不知道哪错了,高手帮忙看看。 展开
编写一个程序,输入年号和月份,判断该年是否为闰年,并根据给出的月份判断是什么季节和该月有多少天?(①闰年的条件是:年号能被4整除但不能被100整除,或者能被400整除;②如果是闰年,2月份为29天,否则为28天,其他月份相同;③规定3~5月为春季,6~8月为夏季,9~11月为秋季,1、2和12月为冬季)
我编的程序是这样:
#include<stdio.h>
void main()
{
int x,y;
printf("请输入年号与月份\n");
scanf("%d,%d",&x,&y);
if (x%400==0)||(x%4==0&&x%100==0)
printf("%d年是闰年。\n",x);
else printf("%d年不是闰年。\n",x);
switch(y)
{
case 12:
case 1:
case 2: printf("该季度是:冬季\n"); break;
case 3:
case 4:
case 5: printf("该季度是:春季\n"); break;
case 6:
case 7:
case 8: printf("该季度是:夏季\n"); break;
default: printf("该季度是:秋季\n"); break;
}
switch(y)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: printf("当月天数为31天。\n"); break;
case 4:
case 6:
case 9:
case: 11 printf("当月天数为30天。\n"); break;
default: if (x%400==0)||(x%4==0&&x%100==0) printf("当月天数为29天 else printf("当月天数有28天。\n");
}
}
老是提示有错误 就是不知道哪错了,高手帮忙看看。 展开
4个回答
展开全部
我调试了,有以下几处错误:
1,if (x%400==0)||(x%4==0&&x%100==0) 应该修改为
if ((x%400==0)||(x%4==0&&x%100!=0) )即再加括号,而且表达式逻辑与题意不符,你推调敲下.
2,case: 11 printf("当月天数为30天。\n"); break; 应该修改为
case 11: printf("当月天数为30天。\n"); break; 冒号错位了
3,default: if (x%400==0)||(x%4==0&&x%100==0) 应该修改为
default: if ((x%400==0)||(x%4==0&&x%100!=0)) 即再加个括号,与第一个错误一样!!
scanf("%d,%d",&x,&y); 没有错误,就是在输入数据时记得逗号也要人为输入.即2006,8
要不改为scanf("%d%d",&x,&y); 这样输入数据后回车再输入下个数据再回车.
上面的两位都说错了
1,if (x%400==0)||(x%4==0&&x%100==0) 应该修改为
if ((x%400==0)||(x%4==0&&x%100!=0) )即再加括号,而且表达式逻辑与题意不符,你推调敲下.
2,case: 11 printf("当月天数为30天。\n"); break; 应该修改为
case 11: printf("当月天数为30天。\n"); break; 冒号错位了
3,default: if (x%400==0)||(x%4==0&&x%100==0) 应该修改为
default: if ((x%400==0)||(x%4==0&&x%100!=0)) 即再加个括号,与第一个错误一样!!
scanf("%d,%d",&x,&y); 没有错误,就是在输入数据时记得逗号也要人为输入.即2006,8
要不改为scanf("%d%d",&x,&y); 这样输入数据后回车再输入下个数据再回车.
上面的两位都说错了
展开全部
scanf("%d,%d",&x,&y); 这句去掉两个%d之间的逗号。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我现在在学呢!还没有学到C语言,对不起哦!但是我可以叫我的老师来帮你看看!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询