step1 . day4 C语言基础练习之日历
學(xué)習(xí)完基礎(chǔ)循環(huán)、選擇語句,寫一個日歷檢驗水準(zhǔn)。
日歷核心:
1.選擇基礎(chǔ)參照,用來計算總天數(shù)和周幾的參照(since 1900.1.1,這天是周一)
2.閏年平年的判斷條件及循環(huán)結(jié)構(gòu)
3.計算需要打印月份的天數(shù)、從周幾開始的補充空格數(shù)、循環(huán)換行
代碼參照如下,初級版本,有待進(jìn)一步優(yōu)化至萬年歷(1900年之前還沒驗證)
#include <stdio.h>
int main()
{
int basic_year = 1900;
int i,j,k,m;
int sum = 0;
int month_day;
int year,month;
int check_year,check_month;
printf("請輸入年份:");
check_year = scanf("%d",&year);
while(0 == check_year)
{
getchar();
printf("年份輸入錯誤,請重新輸入:");
check_year = scanf("%d",&year);
}
printf("請輸入月份(1~12):");
check_month = scanf("%d",&month);
while(0 == check_month || month < 1 || month > 12)
{
getchar();
printf("月份輸入錯誤,請重新輸入(1~12):");
check_month = scanf("%d",&month);
}
for(i=1900; i<year;i++)
{
if((i%100!=0) && (i%4==0) || (i%400==0) )
sum=sum+366;
else
sum=sum+365;
}
for(j=1;j<=month;j++)
{
if(j==1 || j==3 ||j==5 ||j==7 ||j==8 ||j==10 ||j==12)
{
sum=sum+31;
month_day=31;
}
else if(j==4 ||j==6 ||j==9 ||j==11)
{
sum=sum+30;
month_day=30;
}
else
{
if( (year%400==0) || ((year%100!=0) && (year%4==0)) )
{
sum=sum+29;
month_day=29;
}
else
{
sum=sum+28;
month_day=28;
}
}
}
printf("sum=%d\n",sum);
printf("%d年%d月\n",year,month);
printf("一\t二\t三\t四\t五\t六\t日\n");
for(k=0;k<((sum-month_day)%7);k++)
printf("\t");
for(m=1;m<=month_day;m++)
{
if((m+k)%7==0)
printf("%d\n",m);
else
printf("%d\t",m);
}
?
return 0;
}
轉(zhuǎn)載于:https://www.cnblogs.com/huiji12321/p/11111583.html
總結(jié)
以上是生活随笔為你收集整理的step1 . day4 C语言基础练习之日历的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小熊维尼项目冲刺 第三天
- 下一篇: 【Java面经】非科班渣硕面经