c语言程序 编写日历,求用C语言编写一个万年历,要求输入年月,输出相应月份的日历~...

本文提供了一个使用C++编写的简易日历程序示例,该程序能够根据用户输入的年份和月份显示对应的月份日历,并考虑了闰年的情况。通过此示例,初学者可以更好地理解C++中日期处理的基本逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

gxzu7165

2014.12.21

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:42%    等级:8

已帮助:412人

// aa.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include #include #include void tiangan(int x) {char a[][10]={"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"}; int i=x-1864; i=i%10; if(i>=0) printf("\t\t%s",a[i]); else {while(i<0) i=i+10; printf("\t\t%s",a[i]); } } void dizhi(int x) {char a[][10]={"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"}; int i=x-1864; i=i%12; if(i>=0) printf("%s年",a[i]); else {while(i<0) i=i+12; printf("%s年",a[i]);} } void shengxiao(int x) {char a[][10]={"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"}; int i=(x-1900)%12; if(i>=0) printf("(%s年)\n",a[i]); else {while(i<0) i=i+12; printf("(%s年)\n",a[i]);} } int yue() {int i,y,x,day,j,s=0,sum=365,m,month,c,d; printf("请输入年份:"); scanf("%d",&x); printf("请输入月份:"); scanf("%d",&month); while(1) {tiangan(x); dizhi(x); shengxiao(x); int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; day=(x+(x-1)/4-(x-1)/100+(x-1)/400)%7; if(x%100==0) {if(x%400==0) {a[1]++;sum++;} } else if(x%4==0) {a[1]++;sum++;} if(day==0) day=7; sum=sum+day; for(i=0;i<12;i++) {if(i==month-1) {printf("%d年%d月:\n\n",x,month); printf(" 周日 周一 周二 周三 周四 周五 周六\n");} {for(j=1;j<=a[i];j++) {if(j==1) for(m=0;m12) {month=1;x++;}} else break; }} int main() { yue(); return 0; } 追问: 对于初学者来说,这个貌似太难了……能不能把 天干地支 去掉,头文件换简单些 回答: #include #include #include int yue() {int i,y,x,day,j,s=0,sum=365,m,month,c,d; printf("请输入年份:"); scanf("%d",&x); printf("请输入月份:"); scanf("%d",&month); while(1) { int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; day=(x+(x-1)/4-(x-1)/100+(x-1)/400)%7; if(x%100==0) {if(x%400==0) {a[1]++;sum++;} } else if(x%4==0) {a[1]++;sum++;} if(day==0) day=7; sum=sum+day; for(i=0;i<12;i++) {if(i==month-1) {printf("%d年%d月:\n\n",x,month); printf(" 周日 周一 周二 周三 周四 周五 周六\n");} {for(j=1;j<=a[i];j++) {if(j==1) for(m=0;m12) {month=1;x++;}} else break; }} int main() { yue(); return 0;

11分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值