#include<stdio.h>?
void main()
{
int year;
int month,maxmonth=12;
int day,maxday;
printf("請輸入年份:(1000~3000)");
scanf("%d",&year);
if(year<1000 || year>3000)
{
printf("輸入錯誤!請從新輸入!\n");
printf("請輸入年份:(1000~3000)");
scanf("%d",&year);
}
printf("請輸入月份:(1~12)");
scanf("%d",&month);
if(month<1 || month>12)
{
printf("輸入錯誤!請從新輸入!\n");
printf("請輸入月份:(1~12)");
scanf("%d",&month);
}
if(month==4||month==6||month==9||month==11)
maxday=30;
else if(month==2)
{
if(year%400==0 || year%4==0)
maxday=28;
else
maxday=29;
}
else
maxday=31;
printf("請輸入日份:(1~31)");
scanf("%d",&day);
if(day<1 || day>maxday)
{
printf("輸入錯誤!請從新輸入!\n");
printf("請輸入日份:(1~31)");
scanf("%d",&day);
}
if(month==maxmonth && day==maxday)
{
year=year+1;
month=1;
day=1;
}
else if(day==maxday)
{
month=month+1;
day=1;
}
else
day=day+1;
printf("下一天是%d年%d月%d日",year,month,day);
getchar();
}

按回車自動退出 不編譯結果
uj5u.com熱心網友回復:
看起來是一定會走到printf的呀,你確認保存編譯了?uj5u.com熱心網友回復:
按下“Enter”鍵,緩沖區內會有“換行”字符,這也會被getchar()取走,你可以試試呼叫兩次getchar(),或者呼叫system("pause");(需要包含頭檔案#include <Windows.h>)uj5u.com熱心網友回復:
#include<stdio.h>
//void main()
int main()
{
int year;
int month,maxmonth=12;
int day,maxday;
printf("請輸入年份:(1000~3000)");
scanf("%d",&year);
//if(year<1000 || year>3000)
while (year<1000 || year>3000)
{
printf("輸入錯誤!請從新輸入!\n");
printf("請輸入年份:(1000~3000)");
scanf("%d",&year);
}
printf("請輸入月份:(1~12)");
scanf("%d",&month);
//if(month<1 || month>12)
while (month<1 || month>12)
{
printf("輸入錯誤!請從新輸入!\n");
printf("請輸入月份:(1~12)");
scanf("%d",&month);
}
if(month==4||month==6||month==9||month==11)
maxday=30;
else if(month==2)
{
//if(year%400==0 || year%4==0)
if(year%400==0 || (year%4==0 && year % 100 != 0))
maxday=28;
else
maxday=29;
}
else
maxday=31;
printf("請輸入日份:(1~31)");
scanf("%d",&day);
//if(day<1 || day>maxday)
while (day<1 || day>maxday)
{
printf("輸入錯誤!請從新輸入!\n");
printf("請輸入日份:(1~31)");
scanf("%d",&day);
}
if(month==maxmonth && day==maxday)
{
year=year+1;
month=1;
day=1;
}
else if(day==maxday)
{
month=month+1;
day=1;
}
else
day=day+1;
printf("下一天是%d年%d月%d日",year,month,day);
getchar();
}
供參考~
uj5u.com熱心網友回復:
確定 感覺不是代碼問題 是其他問題 我換其他的代碼上去,也是只編譯輸入不編譯輸出uj5u.com熱心網友回復:
加這個system("pause")好像可以了 但是其他的不行uj5u.com熱心網友回復:
你這是編譯運行的吧,不是在ide里運行的吧,所以程式結束后就自動關閉cmd視窗了
本來用getchar也可以讓程式暫停的(IO阻塞),只是你前面的輸入里有回車符殘留在輸入快取,所以getchar直接拿到回車符繼續往下運行而結束程式了,所以在程式的最后用system("pause")可以讓程式暫停不結束
你說的其他不行是指什么?是指getchar不行?那你在getchar之前加上fflush(stdin)試試,清空輸入快取
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/75956.html
標籤:C語言
