C语言初学者的一个程序问题。
解决时间 2021-04-22 15:28
- 提问者网友:寂寞撕碎了回忆
- 2021-04-22 09:57
#include <stdio.h>
void main()
{
int m,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,date,year,count;
c1=c3=c5=c7=c8=c10=c12=31;
c4=c6=c9=c11=30;
printf("请分别输入8位年月日(如19900531表示1990年5月31日):\n");
for(;;)
{
if(getchar()=='A') break;
scanf("%4d%2d%2d",&year,&m,&date);
if(year%4==0&&year%100!=0||year%400==0) c2=29;
else c2=28;
switch(m)
{
case 1:count=date;break;
case 2:count=date+c1;break;
case 3:count=date+c1+c2;break;
case 4:count=date+c1+c2+c3;break;
case 5:count=date+c1+c2+c3+c4;break;
case 6:count=date+c1+c2+c3+c4+c5;break;
case 7:count=date+c1+c2+c3+c4+c5+c6;break;
case 8:count=date+c1+c2+c3+c4+c5+c6+c7;break;
case 9:count=date+c1+c2+c3+c4+c5+c6+c7+c8;break;
case 10:count=date+c1+c2+c3+c4+c5+c6+c7+c8+c9;break;
case 11:count=date+c1+c2+c3+c4+c5+c6+c7+c8+c9+c10;break;
case 12:count=date+c1+c2+c3+c4+c5+c6+c7+c8+c9+c10+c11;break;
}
printf("%d月%d日是%d年的第%d天\n",m,date,year,count);
}
}
最佳答案
- 五星知识达人网友:神的生死簿
- 2021-04-22 10:30
是哪里出问题了呢?
全部回答
#include <stdio.h>
void main()
{
int m,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,date,year,count;
c1=c3=c5=c7=c8=c10=c12=31;
c4=c6=c9=c11=30;
printf("请分别输入8位年月日(如19900531表示1990年5月31日):\n");
for(;;)
{
if(getchar()=='A') break;//把这句屏蔽掉。。就好了。。。。
scanf("%4d%2d%2d",&year,&m,&date);
if(year%4==0&&year%100!=0||year%400==0) c2=29;
else c2=28;
switch(m)
{
case 1:count=date;break;
case 2:count=date+c1;break;
case 3:count=date+c1+c2;break;
case 4:count=date+c1+c2+c3;break;
case 5:count=date+c1+c2+c3+c4;break;
case 6:count=date+c1+c2+c3+c4+c5;break;
case 7:count=date+c1+c2+c3+c4+c5+c6;break;
case 8:count=date+c1+c2+c3+c4+c5+c6+c7;break;
case 9:count=date+c1+c2+c3+c4+c5+c6+c7+c8;break;
case 10:count=date+c1+c2+c3+c4+c5+c6+c7+c8+c9;break;
case 11:count=date+c1+c2+c3+c4+c5+c6+c7+c8+c9+c10;break;
case 12:count=date+c1+c2+c3+c4+c5+c6+c7+c8+c9+c10+c11;break;
}
printf("%d月%d日是%d年的第%d天\n",m,date,year,count);
}
}
if(getchar()=='A') break;//把这句屏蔽掉。。就好了。。。。
- 2楼网友:第幾種人
- 2021-04-22 11:52
#include <stdio.h>
void main()
{
int m,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,date,year,count;
c1=c3=c5=c7=c8=c10=c12=31;
c4=c6=c9=c11=30;
char c;
printf("请分别输入8位年月日(如1990 05 31表示1990年5月31日):\n"); // 分开输入
for(;;)
{
if((c=getchar())=='A') break; else ungetc(c, stdin); // 如果不是A要把这个字符退回去
scanf("%4d%2d%2d",&year,&m,&date);
if(year%4==0&&year%100!=0||year%400==0) c2=29;
else c2=28;
switch(m)
{
case 1:count=date;break;
case 2:count=date+c1;break;
case 3:count=date+c1+c2;break;
case 4:count=date+c1+c2+c3;break;
case 5:count=date+c1+c2+c3+c4;break;
case 6:count=date+c1+c2+c3+c4+c5;break;
case 7:count=date+c1+c2+c3+c4+c5+c6;break;
case 8:count=date+c1+c2+c3+c4+c5+c6+c7;break;
case 9:count=date+c1+c2+c3+c4+c5+c6+c7+c8;break;
case 10:count=date+c1+c2+c3+c4+c5+c6+c7+c8+c9;break;
case 11:count=date+c1+c2+c3+c4+c5+c6+c7+c8+c9+c10;break;
case 12:count=date+c1+c2+c3+c4+c5+c6+c7+c8+c9+c10+c11;break;
}
printf("%d月%d日是%d年的第%d天\n",m,date,year,count);
}
}
我要举报
大家都在看
推荐资讯