慕莱坞3467181
2019-08-14 14:19
#include <stdio.h>
int main()
{
int year = 2008;
int month = 8;
int day = 8;
int sum,flag;
switch(month)
{
case 1:sum+=day;break;
case 2:sum+=31+day;break;
case 3:sum+=59+day;break;
case 4:sum+=90+day;break;
case 5:sum+=120+day;break;
case 6:sum+=151+day;break;
case 7:sum+=181+day;break;
case 8:sum+=212+day;break;
case 9:sum+=243+day;break;
case 10:sum+=273+day;break;
case 11:sum+=304+day;break;
case 12:sum+=334+day;break;
default:printf("Get away,bitch!");break;
}
if((year%4==0&&year%100!=0)||year%400==0)
flag=1;
else
flag=0;
if(flag==1&&month>2)
printf("%d年%d月%d日是本年的第%d天。",year ,month,day,sum++);
else
printf("%d年%d月%d日是本年的第%d天。",year ,month,day,sum);
return 0;
}
你的问题有2个方面, 一个是前面的公式case 1:sum+=day;break; 2种方法 一个是 爸+号去掉,直接赋值 case 1:sum=day;break; 下面的公式都这样改, 另一种方法是 把sum 先在前面赋值0,。
第二个问题就是你自己说的 sum++ 错了, 也是2个选择 一个是吧这个公式放到这一行的前面,然后直接printf sum; 第二种方法 把sum++ 换成 ++sum。 也可以解决问题。
程序写得很冗余
#include <stdio.h>
int main()
{
int year = 2008;
int month = 8;
int day = 8;
int sum,flag;
switch(month)
{
case 1:sum=day;break;
case 2:sum=31+day;break;
case 3:sum=59+day;break;
case 4:sum=90+day;break;
case 5:sum=120+day;break;
case 6:sum=151+day;break;
case 7:sum=181+day;break;
case 8:sum=212+day;break;
case 9:sum=243+day;break;
case 10:sum=273+day;break;
case 11:sum=304+day;break;
case 12:sum=334+day;break;
default:printf("Get away,bitch!");break;
}
if((year%4==0&&year%100!=0)||year%400==0)
flag=1;
else
flag=0;
if(flag==1&&month>2)
printf("%d年%d月%d日是本年的第%d天。",year ,month,day,++sum);
else
printf("%d年%d月%d日是本年的第%d天。",year ,month,day,sum);
return 0;
}
C语言入门
926288 学习 · 20799 问题
相似问题