求助C语言的switch这个程序的问题。大侠们帮助下吧!谢谢了。
/*Note:YourchoiceisCIDE*/#include"stdio.h"voidmain(){inty,m,d;printf("请输入年月:如2012-2\n...
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int y,m,d;
printf("请输入年月:如2012-2\n");
scanf("%d-%d",&y,&m);
switch(m)
{
case 1:printf("d=31");
break;
case 3:printf("d=31");
break;
case 5:printf("d=31");
break;
case 7:printf("d=31");
break;
case 8:printf("d=31");
break;
case 10:printf("d=31");
break;
case 12:printf("d=31");
break;
case 4:printf("d=30");
break;
case 6:printf("d=30");
break;
case 9:printf("d=30");
break;
case 11:printf("d=30");
break;
case 2:
if(y%4==0&&y%100!=0)
printf("%d=29");
else
printf("%d=28");
}
}
先是这个程序的问题。这个程序可以正常运行,但是如果我输入2010-2时(只要是闰年的2月)答案那里就有一点小问题,就是它显示答案前面是0=29或者0=28而不是d=29或者d=28。如图:
但是输入其他月份就会是显示的是d=多少多少。就是这个问题。求解答。我还只是一个初学者,才开始上c语言课程。谢谢各位了。 展开
#include "stdio.h"
void main()
{
int y,m,d;
printf("请输入年月:如2012-2\n");
scanf("%d-%d",&y,&m);
switch(m)
{
case 1:printf("d=31");
break;
case 3:printf("d=31");
break;
case 5:printf("d=31");
break;
case 7:printf("d=31");
break;
case 8:printf("d=31");
break;
case 10:printf("d=31");
break;
case 12:printf("d=31");
break;
case 4:printf("d=30");
break;
case 6:printf("d=30");
break;
case 9:printf("d=30");
break;
case 11:printf("d=30");
break;
case 2:
if(y%4==0&&y%100!=0)
printf("%d=29");
else
printf("%d=28");
}
}
先是这个程序的问题。这个程序可以正常运行,但是如果我输入2010-2时(只要是闰年的2月)答案那里就有一点小问题,就是它显示答案前面是0=29或者0=28而不是d=29或者d=28。如图:
但是输入其他月份就会是显示的是d=多少多少。就是这个问题。求解答。我还只是一个初学者,才开始上c语言课程。谢谢各位了。 展开
8个回答
展开全部
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int y,m,d;
printf("请输入年月:如2012-2\n");
scanf("%d-%d",&y,&m);
switch(m)
{
case 1:printf("d=31");
break;
case 3:printf("d=31");
break;
case 5:printf("d=31");
break;
case 7:printf("d=31");
break;
case 8:printf("d=31");
break;
case 10:printf("d=31");
break;
case 12:printf("d=31");
break;
case 4:printf("d=30");
break;
case 6:printf("d=30");
break;
case 9:printf("d=30");
break;
case 11:printf("d=30");
break;
case 2:
if(y%4==0&&y%100!=0||y%400==0) //改了
printf("d=29"); //改了
else
printf("d=28"); //改了
}
}
#include "stdio.h"
void main()
{
int y,m,d;
printf("请输入年月:如2012-2\n");
scanf("%d-%d",&y,&m);
switch(m)
{
case 1:printf("d=31");
break;
case 3:printf("d=31");
break;
case 5:printf("d=31");
break;
case 7:printf("d=31");
break;
case 8:printf("d=31");
break;
case 10:printf("d=31");
break;
case 12:printf("d=31");
break;
case 4:printf("d=30");
break;
case 6:printf("d=30");
break;
case 9:printf("d=30");
break;
case 11:printf("d=30");
break;
case 2:
if(y%4==0&&y%100!=0||y%400==0) //改了
printf("d=29"); //改了
else
printf("d=28"); //改了
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
case 11:printf("d=30");
if(y%4==0&&y%100!=0)
printf("%d=29");
两句输出语句有什么不一样?
if(y%4==0&&y%100!=0)
printf("%d=29");
两句输出语句有什么不一样?
追问
真的很感谢您们这些人们。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
case 2:if(y % 4 == 0 && y % 100 != 0)
printf("d=29");
else
printf("d=28");
printf("d=29");
else
printf("d=28");
追问
真的很感谢您们。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%d改成d 要不printf("%d=28",d)
追问
真的谢谢您了。如果像你后面说那样错误更大了。前面是对的。嘿嘿。真的再次谢谢您。以后有问题希望您们能再次帮助。
追答
相互学习 呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-19
展开全部
if(y%4==0&&y%100!=0||y%400==0){
printf(“%d=29”,m);
}
else{
print(“%d=28”,m);
}
试试!!!
printf(“%d=29”,m);
}
else{
print(“%d=28”,m);
}
试试!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询