用c语言编写万年历,要求输出任意一年的某月,能显示出这个月的日历 20

 我来答
电子数码小百科NW
2020-02-15 · TA获得超过6493个赞
知道答主
回答量:15
采纳率:0%
帮助的人:4039
展开全部

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,在里面输入年份后回车就完成了。

传薪网络
推荐于2017-05-23 · TA获得超过1355个赞
知道小有建树答主
回答量:635
采纳率:92%
帮助的人:243万
展开全部
#include"stdio.h"
#include"stdlib.h"
main( )
{
int Year,Month; //年、月
int FirstDay_Year,FirstDay_Month; //某年的第一天是星期几,某年某月的第一天是星期几(范围是0~6,其中0代表星期日)
int IsLeapYear; //是否为闰年,0表示不是闰年,1表示是闰年
int i,d,y; //临时变量
char YN; //Yes No,程序是否要继续

//Days[1~12]存储每个月有多少天,其中二月的天数是可变的(闰年29天,平年28天),这里初始化为28天
int Days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf(" C语言简单万年历\n"); //打印标题
do{ //循环标号(可以通过goto跳转到这里)
printf("请输入年份<0000~9999>: "); //提示输入年份(0~9999)
scanf("%d",&Year); //把输入的年份赋值给变量Year

printf("请输入月份<0~12>: "); //提示输入月份(1~12)
scanf("%d",&Month); //把输入的月份赋值给变量Month

y=Year;
FirstDay_Year=5*(y/4)+(y%4)-(y/100)+(y/400);//蔡勒公式(计算某年的第一天是星期几)
IsLeapYear=(y%4==4&&y%100!=100||y%400==0)?1:0;
//判断是否为闰年
Days[2]=(IsLeapYear==1)?29:28; //闰年二月29天,非闰年二月28天
for(i=1,d=0;i<Month;i++)
d=d+Days[i];
FirstDay_Month=(d+FirstDay_Year)%7; //当月的第一天是星期几(0代表星期日)

printf("\n****************************************************\n");
printf("\t\t公元 %d 年 %2d 月",Year,Month); //打印年月
printf("\n****************************************************\n");

//打印星期表头
printf(" 星期日 星期一 星期二 星期三 星期四 星期五 星期六\n");

for(i=0;i<FirstDay_Month;i++)
printf("%7c",' '); //当某月的第一天不是星期日时打印空格占位

for(d=1;d<=Days[Month];d++) //循环,从每个月的第一天开始打印
{
printf("%7d",d);
if(((d+FirstDay_Month)%7)==0 && d<Days[Month])
printf("\n"); //当输出了星期六而且还未输出所有天数时,换行
}
printf("\n****************************************************\n");
printf("\n");
printf("是否继续(Y/N)?\n");
scanf("%c",&YN);
scanf("%c",&YN);//
}while(YN=='Y' || YN=='y');

}
更多追问追答
追问
不对啊
闰年算不出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vevia

2015-12-09 · 努力奋斗,拼命工作。
vevia
采纳数:5227 获赞数:7227

向TA提问 私信TA
展开全部
更多追问追答
追问
果断看不懂,能短一点吗
追答
..........
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式