运用C++基本知识,编写程序:从键盘上任意输入一个日期,求1月1日到该日期的天数。求解,急用

2024-11-15 16:57:02
推荐回答(3个)
回答1:

#include

int countDays(int year,int month,int day)
{
int n=0,m,i;
for(i=1;i< month;i++) //最后的一个月只有day那么多天,不要在循环里面计算了。
{
switch(i)
{case 1:m=31;break;
case 2:if(year%400==0||(year%4==0&&year%100!=0)) m=29;
else m=28;break;
case 3:m=31;break;
case 4:m=30;break;
case 5:m=31;break;
case 6:m=30;break;
case 7:m=31;break;
case 8:m=31;break;
case 9:m=30;break;
case 10:m=30;break;
case 11:m=31;break;
}
if(i==1) n= m;

if(i>1) n = n+ m; // 最后一个月的days不要在循环里面计算,
}
n = n + day; //在这儿计算最后一个月的天数。
return n;
}

int main()
{
int year, month, day, num;
printf("请输入年月日:");
scanf("%d%d%d", &year, &month, &day);
num = countDays(year, month, day);
printf("输入日期距离当年1月1日有%5d天.\n", num);
return 0;
}

回答2:

int main()
{
int i;
int year, month, day, num = 0;
int a [13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
cout<<"请输入年月日:";
cin>>year;
cin>>month;
cin>>day;
for(i=0;i
num+=a[i];

if((year%400==0||(year%4==0&&year%100!=0))&&month>2)
num+=day;
else
num+=day-1;

cout<<"输入日期距离当年1月1日有"< return 0;
}

回答3:

网上有 这是大学的课后题把