我知道我的代码很接近,但它并没有起作用。
它应该包括日历开始的一周中的日期以及该月的天数。
我能帮忙纠正一下吗?
int main(void)
{
int start_day, days_in_month, i, day_of_week;
printf("Enter start day: ");
scanf("%d", &start_day);
printf("Enter days in month: ");
scanf("%d", &days_in_month);
for (i = 1 ; i < start_day; i++) {
printf(" ");
}
for (i = 1; i <= days_in_month; i++) {
printf("%2d ", i);
if ((i + start_day - 1) % 7 == 0) {
printf("\n");
}
}
return 0;
}
答案 0 :(得分:1)
我可以看到一些小问题:
#include <stdio.h>
day_of_week
,因为您不使用它。scanf
的返回值,如果没有输入数字则中止,以避免未定义的行为。以下是更正后的版本:
#include <stdio.h>
int main(void) {
int start_day, days_in_month, i;
printf("Enter start day: ");
if (scanf("%d", &start_day) != 1)
return 1;
printf("Enter days in month: ");
if (scanf("%d", &days_in_month) != 1)
return 1;
for (i = 1; i < start_day; i++) {
printf(" ");
}
for (i = 1; i <= days_in_month; i++) {
printf("%2d", i);
if ((i + start_day - 1) % 7 == 0) {
printf("\n");
} else {
printf(" ");
}
}
if ((days_in_month + start_day - 1) % 7 != 0) {
printf("\n");
}
return 0;
}