介绍
在本文中,我们将探讨如何使用C语言中的for循环打印用户选择的一个月份的日历。我们将使用基本的C语言循环和条件语句来完成这个任务。
代码实现
读取用户输入的月份
首先,我们需要读取用户输入的月份。我们可以使用标准输入函数scanf()
来完成这个任务:
int month;
printf("请输入月份:");
scanf("%d", &month);
这段代码将提示用户输入月份,并将输入的值存储在变量month
中。
计算并打印日历
我们可以使用嵌套的for循环来计算并打印所选月份的日历。我们的代码将使用数组days_in_month
来存储每个月份的天数,该数组的索引为月份。我们将使用条件运算符?:
来选择是否应打印一个空格:
int days_in_month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
for (int i = 1; i <= days_in_month[month]; i++) {
printf("%2d ", i);
if ((i + day_of_week - 1) % 7 == 0 || i == days_in_month[month])
printf("\n");
}
在这个代码段中,我们使用了变量day_of_week
,它代表所选月的第一天是星期几。我们可以使用嵌套的if语句和取模运算符%
来确定何时打印一个换行符,以便在打印日历时正确地进行格式化。
完整代码示例
#include <stdio.h>
int main() {
int month, day_of_week = 2;
printf("请输入月份:");
scanf("%d", &month);
int days_in_month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf(" Su Mo Tu We Th Fr Sa\n");
for (int i = 1; i < day_of_week; i++) {
printf(" ");
}
for (int i = 1; i <= days_in_month[month]; i++) {
printf("%2d ", i);
if ((i + day_of_week - 1) % 7 == 0 || i == days_in_month[month])
printf("\n");
}
return 0;
}
总结
在本文中,我们讨论了如何使用C语言中的for循环打印一个月份的日历。通过使用for循环和条件语句,我们可以计算并打印所选月份的日历。这是一个基本的C语言编程任务,适合初学者练习。