“输入某年某月某日,判断这一天是这一年的第几天”用c语言怎样编程

想知道用c 语言怎样编程这个题目——“输入某年某月某日,判断这一天是这一年的第几天”

第1个回答  2019-11-18
main()
{
int
day,month,year,sum,leap;
printf("\nplease
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("data
error");break;
}
sum=sum+day;
/*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It
is
the
%dth
day.",sum);}
第2个回答  2008-06-13
#include<stdio.h>
void main()
{ int days,month,year,day,i,d;
printf("Please input(year,month,day): ");
scanf("%d,%d,%d",&year,&month,&day);
days=0;
for(i=1;i<month;i++)
{switch(i)
{case 1:case 3:case 5:case 7:case 8:case 10:case 12:d=31;break;
case 4:case 6:case 9:case 11:d=30;break;
case 2:if((year%400==0)||(year%4==0&&year%100!=0))
d=29;
else d=28;
}
days+=d;}
printf("%d年%d月%d日是这一年的第%d天",year,month,day,day+days);}
第3个回答  2008-06-30
#include<iostream>
using namespace std;
main ()
{
int day,year,month;
int s=0;
cin >>year>>month>>day;
int m12[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
for (int i=1;i<month;i++)
{
if (year%4==0 && year%100!=0 || year%400==0)
if (i==2)
{
s+=29;
continue;
}
s+=m12[i];
}
s+=day;
cout<<s;
// cin>>s;
}
第4个回答  2008-06-13
以前编过的..呵呵..

#include <stdio.h>

int isLeapYear(int year) {
return year%4==0&&year%100||year%400==0;
}
int Days(int year,int month,int day) {
int flag=isLeapYear(year);
switch(month) {
case 12: day+=30;
case 11: day+=31;
case 10: day+=30;
case 9: day+=31;
case 8: day+=31;
case 7: day+=30;
case 6: day+=31;
case 5: day+=30;
case 4: day+=31;
case 3: day+=(flag?29:28);
case 2: day+=31;
}
return day;
}

int main(int argc, char *argv[])
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("这是这一年的第%d天\n",Days(a,b,c));
return 0;
}本回答被提问者采纳