中易网

C语言做万年历

答案:2  悬赏:20  
解决时间 2021-02-28 16:52
用C语言编写万年历
1、输入年份,判断是否为闰年
2、输入年月日,判断改日为星期几
3、输入年份,打出12个月历,输入月份,打出该月的日历
4、要求用多个函数实现
可发邮箱[email protected]
可以加分
最佳答案


你想问啥??是不是打印日期的时候与其星期数不符?

我运行了一下,格式挺不错啊,就是你的星期数好像算的不太对

#include
void main()
{
int y,m,d,week,k=0,d,i,j,t;
int y1;//用于年数计算
printf("请输入年份\n");
scanf("%d",&y);

if(y%4==0&&y%100!=0||y%400==0)
d=29;
else d=28;

for (t=1;t<=12;t++)
{
printf(" %d月 \n",t);
printf("星期一 星期二 星期三 星期四 星期五 星期六 星期日\n");

switch(t)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: d=31;break;
case 9:
case 4:
case 6:
case 11: d=30;break;
default: d=d;
}

m=t;

if(m==1||m==2)
{
m=m+12;
y1=y-1;//-----------------小心你的y值
}
else
y1=y;

week=(2+2*m+3*(m+1)/5+y1+y1/4-y1/100+y1/400)%7;

if(week==0) week=7;

for(i=1;i printf(" ");
for(i=1;i<=8-week;i++)
printf("%4d ",i);
printf("\n");

k=0;//-----------------k值初始为0
for(j=9-week;j<=d;j++)
{
printf("%4d ",j);
k=k+1; if(k%7==0) printf("\n");

}
printf("\n\n\n");
}

printf("\n");
}
全部回答
#include <stdio.h> int jisuan(int year,int month); int days[12]={31,28,31,30,31,30,31,31,30,31,30,31}; void display(int day,int month) { int i; printf(" %d月 \n",month); printf("日 一 二 三 四 五 六 \n"); for(i=0;i<day;i++) { printf(" "); } for(i=1;i<=days[month-1];i++,day++) { if(i<=9) { printf(" "); } printf("%d ",i); if(day%7==6) { printf("\n"); } } printf("\n********************\n"); } void control(int set) { int year,month=1,day_1,i,m; switch(set) { case 1: { printf("输入你想查询的年代?\n"); scanf("%d",&year); for(i=1;i<=12;i++) { day_1=jisuan(year,month); display(day_1,month++); } break; } case 2: { printf("输入你想查询的年代?\n"); scanf("%d",&year); printf("输入你想知道的月份?\n"); scanf("%d",&month); day_1=jisuan(year,month); display(day_1,month); break; } case 3: { printf("输入你想查询的年代?\n"); scanf("%d",&year); if(year%4==0&&year%100!=0||year%100==0&&year%400==0) { printf("本年是闰年!!!!\n"); //days[1]+=1; } break; } case 4: { printf("输入你想查询的年代?\n"); scanf("%d",&year); printf("输入你想知道的月份?\n"); scanf("%d",&month); printf("输入你想知道的日子?\n"); scanf("%d",&m); day_1=jisuan(year,month); printf("该日为星期%d\n",(day_1+m)%7); break; } default:break; } } main() { int setting; printf("您需要做什么操作?\n"); printf("1、打印年历\n"); printf("2、打印月历\n"); printf("3、判断是否为闰年\n"); printf("4、判断该日为星期几\n"); printf("请按数字选择(1-4)?\n"); scanf("%d",&setting); control(setting); } int jisuan(int year,int month) { int zong_day=0,temp,t,i; if(year%4==0&&year%100!=0||year%100==0&&year%400==0) { days[1]+=1; } for(i=0;i<month-1;i++) { zong_day+=days[i]; } temp=year-1+(year-1)/4+(year-1)/400+(year-1)/100+zong_day+1; t=temp%7; return t; } 大致是这样的,应该不会太难理解吧,求加分!!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
相宜本草哪个系列美白滋润效果好
润锋五金交电在什么地方啊,我要过去处理事情
格林豪泰快捷酒店菏泽广州路店地址在什么地方
脸上T字部位起皮,怎么办?
我欠信用卡还不了,但是我可以慢慢还可以吗
七彩时光艺术旅馆地址在什么地方,想过去办事
芜湖皇朝平时价位是60吗
初一周日记,写怎么过中秋。400----500
谁知道静电是如何产生的吗??
南通得跃五金机电设备有限公司在哪里啊,我有
如何引导学生积极主动的参与学习
李宁佛山市南海区劲锐体育用品店在哪里啊,我
低温离心与常温离心~~
求中国景点名称的正宗英文翻译,高手,专家进
天通苑附近哪里教钢琴 钢琴教学和培训的
推荐资讯
安宁渠路/宣仁墩南街(路口)地址在什么地方,
11款马自达6锁门后仪表盘上里车子里面有个钥
激光鼠标蓝色和红色的光有区别吗
优化大师里面清理的沉余DLL是什么东西
粉色风信子花蕊变蓝怎么办
中国石油大学(华东)与郑州大学哪个好,我是
合肥市沥青混凝土搅拌站有几家
双汇王中王跟双汇鸡肉肠有啥区别 为啥一个贵
重装机兵打开地狱门的计算机在哪
有没有嗅觉神经中枢系统(特别是后面有没有系
单反拍摄微电影怎么调参数
航空pvc地板价格
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?