这个问题非常大打了一天居然是错的求改正
#include <stdio.h>void main()
{
int a,b,c,d,f,g;
printf("输入年月日判断一天是一年的第几天");
scanf("%d%d%d",&a,&b,&c);
if(a%4)
{
if(a%400)
{
d=0;
}else
{
d=1;
}
}else
{
d=1;
}
if(d)
{
g=29;
}else
{
g=28;
}
switch(b)
{
case'1':
f=c;
break;
case'2':
f=c+g;
break;
case'3':
f=31+g+c;
break;
case'4':
f=31+g+30+c;
break;
case'5':
f=31+g+30+31+c;
break;
case'6':
f=31+g+30+31+30+c;
break;
case'7':
f=31+g+30+31+30+31+c;
break;
case'8':
f=31+g+30+31+30+31+31+c;
break;
case'9':
f=31+g+30+31+30+31+31+30+c;
break;
case'10':
f=31+g+30+31+30+31+31+30+31+c;
break;
case'11':
f=31+g+30+31+30+31+31+30+31+30+c;
break;
case'12':
f=31+g+30+31+30+31+31+30+31+30+31+c;
break;
}
printf("您输入的是第%f",f);
}
#include <stdio.h>
int leap(int i)
{
if(i%4 == 0 && i%100 != 0 || i%400 == 0)
return 1;
else
return 0;
}
void main()
{
int y,m,d,i,sum = 0;
int a = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int b = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf("请输入年月日(用逗号分隔):");
scanf("%d,%d,%d",&y,&m,&d);
if(leap(y) == 1)
{
for(i=0;i<m-1;++i)
{
sum += b;
}
sum += d;
}
else
{
for(i=0;i<m-1;++i)
{
sum += a;
}
sum += d;
}
printf("%d年%d月%d天是今年的第%d天\n", y, m, d, sum);
} 牡丹花下死做鬼 发表于 2014-11-1 23:28
好厉害的样子...... 本帖最后由 machimilk 于 2014-11-2 03:05 编辑
试试这个
#include <stdio.h>
int main()
{
int i=0;//计数器
int year=0,month=0,day=0,total=0;//接收用户输入的年月日和用于累加的总计
int dayofmonth={31,28,31,30,31,30,31,31,30,31,30,31};//1-12月 每月的天数
printf("请输入您想知道是当年中第几天的年月日,中间用-分隔 例如2014-11-2\n");
scanf("%d-%d-%d",&year,&month,&day);
while(month>++i)
total+=dayofmonth;//按月份累加每月天数
total+=day;//循环月份的天数之后再加上 日的天数
total+=(year%4==0&&year%100!=0||year%400==0);//如果闰年就多加一天(平年+0天)
printf("%d年%d月%d日 是%d年中的第%d天\n",year,month,day,year,total);
return 0;
} 判断闰年条件不足 学习 machimilk 发表于 2014-11-2 03:00
试试这个
一看你的代码就是高手。有注释,变量名也会取。 :shock: ...、 完全是云里雾里
页:
[1]