用C语言创建日历
我知道我的代码很接近,但不太有效 它应该包括日历开始的星期几和月份的天数 我能得到帮助吗用C语言创建日历,c,calendar,C,Calendar,我知道我的代码很接近,但不太有效 它应该包括日历开始的星期几和月份的天数 我能得到帮助吗 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_mont
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;
}
我可以看到一些小问题: 您应该添加include 您不应该定义一周中的第天,因为您不使用它。 您可能希望避免在每行末尾打印空格。 如果最后一行不完整,则应在日历后输出额外的换行符。 您应该测试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;
}
纠正什么?请说得具体一点,不要说不太管用。具体来说,请告诉我们测试输入、预期输出和实际输出。对我来说很有用。不确定你认为它有什么问题。