c语言输入一个不小于1900的年份数字(1900年1月1日为星期一),在屏幕上从一月开始按月显示年份的月历,月历按星期一到星期日排列,每月显示完成后,提示“输入Q/q结束显示,其他键继续......”
时间: 2023-04-11 07:01:47 浏览: 61
好的,让我来为您解答这个问题。以下是C语言代码:
```
#include <stdio.h>
int main() {
int year, month, days, week, i, j;
char choice;
do {
printf("请输入一个不小于1900的年份:");
scanf("%d", &year);
} while (year < 1900);
printf("\n");
for (month = 1; month <= 12; month++) {
printf(" %d月 %d年\n", month, year);
printf("一 二 三 四 五 六 日\n");
days = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days = 29;
} else {
days = 28;
}
break;
}
week = 1;
for (i = 1; i <= days; i++) {
if (i == 1) {
for (j = 1; j < week; j++) {
printf(" ");
}
}
printf("%2d ", i);
if (week == 7) {
printf("\n");
week = 0;
}
week++;
}
printf("\n输入Q/q结束显示,其他键继续......");
scanf(" %c", &choice);
printf("\n");
if (choice == 'Q' || choice == 'q') {
break;
}
}
return 0;
}
```
希望这个代码可以帮助您解决问题。如果您还有其他问题,请随时问我。