|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
【程序4】年月日判断是年份的第几天。
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int day, month,year,num,leap;
printf("year ,month ,day:\n");
scanf("%d,%d,%d", &year, &month,&day);
switch (month) /*先计算某月以前月份的总天数*/
{
case 1:
num = 0;
break;
case 2:
num = 31;
break;
case 3:
num = 59;
break;
case 4:
num = 90;
break;
case 5:
num = 120;
break;
case 6:
num = 151;
break;
case 7:
num = 181;
break;
case 8:
num = 212;
break;
case 9:
num = 243;
break;
case 10:
num = 273;
break;
case 11:
num = 304;
break;
case 12:
num = 334;
break;
default:
printf("the day error\n");
}
num += day; /*再加上某天的天数*/
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))/*判断是不是闰年*/
{
leap = 1;
}
else
{
leap = 0;
}
if (leap == 1 && month > 2) /*如果是闰年且月份大于2,总天数应该加一天*/
{
num++;
}
printf("It is the %dth day.", num);
system("pause");
return 0;
}
这个程序为什么运行的时候出现错误,求大佬帮忙看一下。
第八行的输入 scanf("%d,%d,%d", &year, &month,&day); 改为:scanf("%d%d%d", &year, &month,&day); 使用 scanf() 时,在语句上除控制符外中间不要加入任何其他的字符 ,在输入时可以用空格隔开 ! 因为加入了,容易出错
|
-
|