本文目錄一覽:
用c語言編寫萬年曆,要求輸出任意一年的某月,能顯示出這個月的日曆
1、首先要判斷一個年份是閏年還是平年,用一個子程序來做。
2、然後就開始寫主程序,首先用scanf得到一個年份。
3、在判斷這個年份是平年還是閏年後用printf在CMD中打印出來。
4、在編寫完成後,在Notepad++界面下按下F5,彈出輸入框。
5、cmd /k gcc -o “$(CURRENT_DIRECTORY)\$(NAME_PART).exe””$(FULL_CURRENT_PATH)” CLS “$(CURRENT_DIRECTORY)\$(NAME_PART).exe” PAUSE EXIT。在輸入框例輸入後運行。
6、點擊運行,會彈出CMD,在裏面輸入年份後回車就完成了。
c語言設計萬年曆
/*不過除了沒有查詢某年某月某日是這一年的第幾天。。和判斷這一年的生肖外,都能滿足你的要求。
加點金幣幫你完善點!*/
#includestdio.h
int
Swiss(int
Years)
//判斷是否是閏年
{
if(!(Years%100))
{
Years=Years/100;
}
if(Years%4)
{
return
0;
}
else
{
return
1;
}
}
int
Number(int
Yearsa,int
Yearsb)
//已知兩個年份,求出兩個年份之間閏年的個數
{
int
i=Yearsa+1;
int
mou=0;
do{
if(Swiss(i))
{
mou++;
}
i++;
}while(iYearsb);
return
mou;
}
int
Mvalue(int
Years,int
Month,int
Day)
//已知年月日,求出某年某月某日是星期幾
{
int
M[12]={0,3,3,6,1,4,6,2,5,0,3,5};
//月值
int
N=6;
//年值初始化
int
a;
if(Years2006)
//求年值,年值以2006年為基數
{
N=6-((2006-Years)%7)-Number(Years,2006);
if(Swiss(Years))
{
if(Month3)
{
N–;
}
}
}
else
if(Years2006)
{
N=((Years-2006)%7)-1+Number(2006,Years);
if(Swiss(Years))
{
if(Month2)
{
N++;
}
}
}
a=(Day+M[Month-1]+N)%7;
//某年某月某日是星期幾=(日值+月值+年值)%7
return
a;
}
int
Amonth(int
Month)
//已知月,求出這個月是大月還是小月
{
switch(Month)
{
case
1:
case
3:
case
5:
case
7:
case
8:
case
10:
//1,3,5,7,8,10,12是大月,沒月31天
case
12:return
1;
case
4:
case
6:
case
9:
case
11:return
0;
//4,6,9,11是小月,每月30天
case
2:return
2;
//二月份
}
return
-1;
}
void
main
()
{
int
Dtable[7][7];
int
i,j;
int
Years=9999;
int
Month=12;
int
Day=1;
int
b;
for(i=0;i7;i++)
//初始化數組
{
Dtable[0][i]=i;
}
for(i=1;i7;i++)
{
for(j=0;j7;j++)
{
Dtable[i][j]=0;
}
}
i=Mvalue(Years,Month,Day);
switch(Amonth(Month))
{
case
0:b=30;break;
case
1:b=31;break;
case
2:if(Swiss(Years))b=29;else
b=28;break;
//閏年2月29天,平年二月28天
default:b=-1;break;
}
for(;i7;i++)
{
Dtable[1][i]=Day++;
}
for(i=2;i7;i++)
{
for(j=0;j7;j++)
//建造日曆表
{
if(Day=b)
{
Dtable[i][j]=Day++;
}
else
{
continue;
}
}
}
printf(“%d:%d\n”,Years,Month);
for(i=0;i7;i++)
//輸出日曆表
{
for(j=0;j7;j++)
{
printf(“%3d”,Dtable[i][j]);
}
printf(“\n”);
}
getch();
//完畢!
}
c語言編寫萬年曆
#include”stdio.h”
#include”stdlib.h”
#include”windows.h”
void welcome();
void getday(int year,int month);
void shuru();
void end();
long year;
long month;
void welcome()
{
printf(“【萬年曆程序加載中”);
for(int i=0;i30;i++)
{
printf(“★”);
Sleep(100);
}
system(“cls”);
printf(“【萬年曆程序加載中】\n”);
Sleep(1000);
printf(“☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆\n”);
Sleep(1000);
printf(” ~~~謝謝使用【菠菜】製作的萬年曆~~~~\n”);
Sleep(100);
printf(“☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆\n”);
Sleep(1000);
}
void end()
{
printf(“【萬年曆關閉中”);
for(int i=0;i30;i++)
{
printf(“★”);
Sleep(100);
}
system(“cls”);
printf(“【萬年曆關閉完成】\n”);
Sleep(1000);
printf(“☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆\n”);
Sleep(1000);
printf(” ~~~謝謝使用【菠菜】製作的萬年曆~~~~\n”);
Sleep(100);
printf(“☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆\n”);
Sleep(1000);
exit(0);
}
void shuru()
{
int a;
printf(“☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆\n”);
printf(” ≮歡迎使用萬年曆≯\n”);
printf(“☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆\n”);
while(1)
{
printf(“請輸入年份:”);
scanf(“%d”,year);
if(year0)
break;
else
{
printf(“\n”);
printf(“你輸入的年份有誤,請重新輸入\n”); } }
printf(“\n”);
while(1)
{
printf(“請輸入月份:”);
scanf(“%d”,month);
if(month=1month=12)
break;
else
{
printf(“\n”);
printf(“你輸入的月份有誤,請重新輸入\n”); } }
getday(year,month);
}
void getday(int year,int month)
{
int week; //星期幾
int nowday=0; //該月前的總天數
long allday; //從公元1年起的總天數
int dayofmonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(year%4==0year%100!=0||year%400==0)
dayofmonth[2]=29;
for(int m=0;mmonth;m++)
{
nowday=nowday+dayofmonth[m];
}
allday=nowday+year*365+year/4-year/100+year/400; //公元一年到現在用了多少天
week=allday%7; //求出這個月第一天是星期幾
printf(” %d 年 %d 月\n”,year,month);
printf(“日 一 二 三 四 五 六\n”);
for(int j=0;jweek;j++)
{
printf(” “);
}
for(int i=1;i=dayofmonth[month];i++)
{
if(week==7)
{
printf(“\n”);
week=0; }
printf(“%2d “,i);
week++; }
printf(“\n”);
printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n”);
}
void main()
{
char a;
welcome();
while(1)
{
shuru();
printf(“你還需要繼續嗎?y ro n”);
fflush(stdin); //清空輸入緩衝區,避免緩衝區內殘存讀取函數無法取走的內容!
scanf(“%c”,a);
if(a==’n’)
break;
}
end();
}
這個萬年曆比較好看哈!你可以試試這個?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/300954.html