满意答案
gxzu7165
2014.12.21
采纳率: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分享举报