C语言 从键盘输入日期(年,月,日),计算并输出它是该年的第几天.

能有不用数组的方法么?如果没有,数组的方法能解释一下么?谢谢

这个吧,不过只适合今年(2015年的哦~)

main()
{int month,day,d;
scanf("%d,%d",&month,&day);
switch(month)
{case 1:d=day;break;
 case 2:d=31+day;break;
 case 3:d=59+day;break;
 case 4:d=90+day;break;
 case 5:d=120+day;break;
 case 6:d=151+day;break;
 case 7:d=181+day;break;
 case 8:d=212+day;break;
 case 9:d=243+day;break;
 case 10:d=273+day;break;
 case 11:d=304+day;break;
 case 12:d=334+day;}
printf("%d\n",d);
getch();
}

追问

...有通用的么?

追答

有啊,我只要改一点点就可以了

追问

不不,是我要求没有说清楚
程序功能:从键盘输入日期(年、月、日),计算并输出它是该年的第几天。按示例格式输入输出(年份满足下面条件之一即为闰年:1.年份能被4整除,但不能被100整除;2.年份能被400整除)。

追答main()
{int year,month,day,d;
scanf("%d%d%d",&year,&month,&day);
switch(month)
{case 1:d=day;break;
 case 2:d=31+day;break;
 case 3:d=59+day;break;
 case 4:d=90+day;break;
 case 5:d=120+day;break;
 case 6:d=151+day;break;
 case 7:d=181+day;break;
 case 8:d=212+day;break;
 case 9:d=243+day;break;
 case 10:d=273+day;break;
 case 11:d=304+day;break;
 case 12:d=334+day;}
if((year%400==0||year%4==0&&year%100)&&month>=3)  //这样就行了
d++;
printf("%d\n",d);
getch();
}

温馨提示:答案为网友推荐,仅供参考
相似回答