如何使用C语言中的for循环打印用户选择的一个月份的日历?

介绍

在本文中,我们将探讨如何使用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语言编程任务,适合初学者练习。

后端开发标签