赞美经典爱情的诗句:很简单的c程序?大家看看!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 02:55:22
#include "stdafx.h"
#include"stdio.h"
void main()
{
int day,month,year,sum,leap;
printf("please input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("It is a error data ");break;
}
sum=sum+day;
if(year%400==0||(year%4==0&&year%100!=0))
leap=1;
else
leap=0;
if(leap==1&&month>2)
sum++;
printf("It is the %dth day.",sum);
}
问题补充:swich 语句它始终执行:
default:printf("It is a error data ");break这句,不知道怎么回事?
我加了sum=0;还是不行呢?还是只执行那句default。。。

请注意你的输入格式:
scanf("%d,%d,%d",&year,&month,&day);

例如:
你可以输入:2006,2,20
就不会有问题

如果你输入:2006 2 20
或者2006, 2, 20(逗号之后有空格)
就会出现你所描述的问题

你的SUM没有赋初值