求大神幫忙 這個代碼我打了好久但就是輸不出來
int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? int a;
? ? switch(year%=4)//余數不為零即為平年
? ? ? case 0:
? ? ? if(month>1)//區分出包不包含二月
? ? ? ? ?{
? ? ? ? a=(month-2)*30+day+29;
? ? ? ? //減2是因為:假設他是三月八號(假設是平年) 那么總天數a=(3-2)*30+28+8=64天? 以此類推
? ? ? ? ? ? ?
? ? ? ? ?}
? ? ? ? ? case
? ? ? ? ? {
? ? ? ? ? ? ? a=day;
? ? ? ? ? ? ??
? ? ? ? ? }?
? ? ? ? ? printf("第%d天",a);
? ? ? break;
? ? ? default:
? ? ? if(month>1)
? ? ? {
? ? ? a=(month-2)*30+day+28;//減2是因為:假設他是三月八號(假設是平年) 那么總天數a=(3-2)*30+28+8=64天? 以此類推
? ? ??
? ? ? }
? ? ? ? ?case
? ? ? ? ? {
? ? ? ? ? ? ? a=day;
? ? ? ? ? ? ?
? ? ? ? ? }
? ? ? ? ? ?printf("第%d天",a);
? ? ? ? ? break;
2019-08-10
先不談語法結構還有中文符號之類的種種問題。
a=(month-2)*30+day+29;這個的話,一個月有31天30天 你這個算法是不成立的。從根本上就是錯的。
2019-08-10
你看看我的代碼。
#include <stdio.h>
int main()?
{?
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? int r=0,days=0,yue=month;
? ? if(((year%4==0&&year%100!=0)||year%400==0))
? ? r=1;
? ? while(yue>1)
? ? {
? ? switch(yue-1)
? ? {
? ? case 4:
? ? case 6:
? ? case 9:
? ? case 11:days+=30;break;
? ? case 2:days+=28+r;break;
? ? default:days+=31;break;
? ? }
? ? yue--;
? ? }
? ? days+=day;
? ? printf("%d年%d月%d日是該年的第%d天",year,month,day,days);
? ? return 0;
}