當前位置:首頁 » 編程語言 » 高斯日記c語言

高斯日記c語言

發布時間: 2023-01-30 22:30:55

『壹』 c語言 高斯日記 我的答案是1779-10-14 求大佬看下哪裡出錯 感謝啊 標准答案1779-7-16

這《高斯日記》的題目為什麼不貼出來呢?因為題目本身與程序是否正確是密切相關的啊!

正面就只能靠「猜測」來試了。

#include<stdio.h>
intifleapyear(intyear)
{if(year%4==0&&year%100!=0||year%400==0)return29;
elsereturn28;
}
intmain()
{intyear=1791,month=12,day=15;
intn=8113-5343;
intarray[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};
printf("%d ",n);
while(1)
{day++;
if(day>array[month])
{month++;
day=1;
}
if(month==13)
{year++;
array[2]=ifleapyear(year);
month=1;
}
n--;
if(n==0)break;
}
printf("%d-%d-%d ",year,month,day);
return0;
}//1799-7-16

『貳』 c語言高斯日記

首先我們需要注意一下,題干中「高斯生日1777年4月30日的5343天後是1791年12月15日」,這里得出一個結論,高斯生日當天為第1天。

求高斯日記所標注的數字的年月日,可以自1777年4月30日起,累加「標注數字-1次」來得出結果。演算法的核心即實現日期累加。

#include<stdio.h>

intdpm[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//每個月的天數

structymd{
intyear,month,day;
};

voidgaussBirthday(structymd*gbd){//定義高斯的生日
gbd->year=1777;
gbd->month=4;
gbd->day=30;
}

voidDate(structymd*a,structymd*b){
b->year=a->year;
b->month=a->month;
b->day=a->day;
}

intisLeap(intyear){
return(year%4==0&&year%100!=0)||year%400==0;
}

intprintDate(structymd*d){//列印日期控制個位數月、日前補0
printf("%d-",d->year);
if(d->month<10)
printf("0%d-",d->month);
else
printf("%d-",d->month);
if(d->day<10)
printf("0%d",d->day);
else
printf("%d",d->day);
printf(" ");
}

voiddate(structymd*gd,intday){//計算距離高斯生日第n天的日期
while(day-1){//自高斯生日起累加至日記標識數字-1
if(gd->month==12&&gd->day==dpm[12]){//年底處理
gd->year++;
gd->month=1;
gd->day=1;
}
elseif(gd->day>=dpm[gd->month]){//月底處理
if(isLeap(gd->year)&&gd->month==2&&gd->day!=29)//閏年2月底處理
gd->day++;
else{
gd->month++;
gd->day=1;
}
}
else
gd->day++;
day--;
}
}

intmain(void){
structymdgbd;//高斯生日
structymdgd;//高斯日記種標識的數字所代表的日期
intday;//高斯日記種標識的數字

gaussBirthday(&gbd);
Date(&gbd,&gd);

printf("請輸入高斯日記中標識的數字:");
scanf("%d",&day);
printf("====================================================== ");

date(&gd,day);

printDate(&gd);

return0;
}

執行結果

輸入題干已知的「5343」

輸出1791-12-15,以驗證演算法

『叄』 c語言演算法-高斯日記-根據天數計算日期-為什麼我總會多算出一天

注意啊 正確答案的演算法是 i<8113 實際算的是 1777年 4月30日 和博士學位日期之間隔了8112天 你的演算法也不算錯 可能和出題人的想法差了一點

熱點內容
app什麼情況下找不到伺服器 發布:2025-05-12 15:46:25 瀏覽:714
php跳過if 發布:2025-05-12 15:34:29 瀏覽:467
不定時演算法 發布:2025-05-12 15:30:16 瀏覽:131
c語言延時1ms程序 發布:2025-05-12 15:01:30 瀏覽:166
動物園靈長類動物配置什麼植物 發布:2025-05-12 14:49:59 瀏覽:736
wifi密碼設置什麼好 發布:2025-05-12 14:49:17 瀏覽:148
三位數乘兩位數速演算法 發布:2025-05-12 13:05:48 瀏覽:397
暴風影音緩存在哪裡 發布:2025-05-12 12:42:03 瀏覽:542
access資料庫exe 發布:2025-05-12 12:39:04 瀏覽:630
五開的配置是什麼 發布:2025-05-12 12:36:37 瀏覽:365