输入某年某月某日,判断这一天是这一年第几天
#include<stdio.h>main()
{
int a,b,c,i,s=0;
printf("请输入某年某月某日:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>=0&&b>=1&&b<=12)
{
if(a%400==0||a%4==0&&a%100!=0)
{
for(i=1;i<=b;i++)
{
if(b==1||b==3||b==5||b==7||b==8||b==10||b==12) s+=31;
else if(b==2)s+=29;
else s+=30;
}
}
else
{
for(i=1;i<=b;i++)
{
if(b==1||b==3||b==5||b==7||b==8||b==10||b==12) s+=31;
else if(b==2) s+=29;
else s+=30;
}
}
printf("是这年的%d天",s);
}
}
算出来都是370多天,想不明白了 看第一个for循环。
你每次s加的都是同一个数,并没有按照1,2,3,4月份顺序。 本帖最后由 jhq999 于 2022-2-23 20:55 编辑
#include<stdio.h>
int main()
{
int a,b,c,i,s=0;
printf("请输入某年某月某日:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>=0&&b>=1&&b<=12)
{
if(a%400==0||a%4==0&&a%100!=0)
{
for(i=1;i<b;i++)//////////////////
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) s+=31;//////////////
else if(i==2)s+=29;////////////////
else s+=30;
}
}
else
{
for(i=1;i<b;i++)///////////////////
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) s+=31;//////////////
else if(i==2) s+=28;//////////////
else s+=30;
}
}
}
printf("是这年的%d天",s+c);//////////////////////
return 0;
}
int main()
{
int a,b,c,i,s=0;
printf("请输入某年某月某日:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>=0&&b>=1&&b<=12)
{
for(i=1;i<b;i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) s+=31;
else if(i==2)s+=28;
else s+=30;
}
}
if(a%400==0||a%4==0&&a%100!=0)if(b>2)s++;
printf("是这年的%d天",s+c);
return 0;
} 本帖最后由 jackz007 于 2022-2-23 20:46 编辑
#include<stdio.h>
int main(void)
{
int d , k , m , x , y ;
int md[] = {31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31} ;
printf("请输入年月日:") ;
scanf("%d%d%d" , & y , & m , & d) ;
if (y > 0 && ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)) md ++ ;
if(y > 0 && m >= 1 && m <= 12 && d >= 1 && d <= md) {
for(k = x = 1 ; k < m ; k ++) x += md ;
x += (d - 1) ;
printf("是这年的第%d天\n" , x) ;
} else {
printf("输入日期无效!\n") ;
}
}
页:
[1]