3条回答 默认 最新
- CSDN专家-Fay 2021-07-05 09:18关注
这个课设主要到C语言的一些日期函数,还有基本的循环,数组的用法等等
int main(void) { int a, i, j, n, k, t, w, x, y, z; static int d[13][78]; int m[14] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; char wst[] = " Sun Mon Yue Wed Thu Fri Sat "; printf("请输入年份: "); scanf("%d", &y); if(y%4==0 && y%100!=0 || y%400==0) /*闰年的二月为29天*/ m[2] = 29; w = (y+(y-1)/4-(y-1)/100+(y-1)/400)%7; /*计算y年元旦为星期w*/ for(i=1; i<=12; i++) { a = 1; for(j=1; j<=6; j++) { for(k=0; k<=6; k++) { while(k<w) k=k+1; d[i][j*10+k] = a; /*计算i月的第j个星期的星期w的日期为a*/ a=a+1; w = k+1; if(w==7) w=0; if(a>m[i]) break; } if(a>m[i]) break; } } printf("输入每行显示的月份数(1-6): "); scanf("%d", &x); for(k=1; k<=16*x-3; k++) printf(" "); printf("=====%d=====\n", y); /*打印年号*/ for(n=1; n<=12/x; n++) { t = x*(n-1)+1; printf("\n "); for(z=1; z<=x; z++) { for(k=1; k<=15; k++) printf(" "); printf("%2d", t+z-1); /*打印月号*/ for(k=1; k<=14; k++) printf(" "); } printf("\n "); for(z=1; z<=x; z++) /*按一横排x个月格式打印*/ printf("%s", wst); /*打印星期标题*/ for(j=1; j<=6; j++) { printf("\n "); for(i=t; i<=t+x-1; i++) { printf(" "); for(k=0; k<=6; k++) if(d[i][j*10+k]==0) /*空缺日期位置打印空格*/ printf(" "); else printf("%4d", d[i][j*10+k]);/*打印日期*/ } } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
- ¥500 火焰左右视图、视差(基于双目相机)
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号