c语言数组怎么存英语月份并打印
时间: 2023-11-16 14:01:36 浏览: 31
要存储英语月份,可以使用字符串数组。具体实现方法如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char months[12][10] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
for (int i = 0; i < 12; i++) {
printf("%s\n", months[i]);
}
return 0;
}
```
这里定义了一个字符串数组`months`,包含12个元素,每个元素都是一个字符串,分别存储了12个英语月份。然后使用`for`循环遍历数组,依次打印出每个月份。
相关问题
显示单月日历c语言数组
这里是一个示例代码,可以显示一个月的日历:
```c
#include <stdio.h>
int main() {
int month, year, daysInMonth, startingDay;
int i, j, day = 1;
// 获取用户输入的年份和月份
printf("请输入年份: ");
scanf("%d", &year);
printf("请输入月份: ");
scanf("%d", &month);
// 计算给定月份的天数和第一天是星期几
if (month == 2) { // 对于二月份需要特殊处理
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
daysInMonth = 29;
} else {
daysInMonth = 28;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
daysInMonth = 30;
} else {
daysInMonth = 31;
}
// 计算本月第一天是星期几
startingDay = ((year - 1) * 365 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400) % 7;
for (i = 0; i < startingDay; i++) {
printf(" "); // 打印空格来占位
}
// 打印每一天
for (j = startingDay; j < 7; j++) {
printf("%2d ", day);
day++;
}
printf("\n"); // 换行
while (day <= daysInMonth) {
for (i = 0; i < 7 && day <= daysInMonth; i++) {
printf("%2d ", day);
day++;
}
printf("\n"); // 换行
}
return 0;
}
```
运行程序时,用户需要输入要显示的年份和月份。程序会根据输入的年份和月份计算出这个月的天数和第一天是星期几,然后按照日历格式输出这个月的每一天。
c语言 二维数组和指针数组实现日历
以下是用二维数组和指针数组实现日历的C语言代码:
```
#include <stdio.h>
int main()
{
int year, month, days, i, j, k;
int calendar[6][7]; // 二维数组
int *p[6]; // 指针数组
printf("请输入年份和月份(例如:2022 11):");
scanf("%d %d", &year, &month);
// 计算该月有多少天
if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
days = 29;
} else {
days = 28;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
days = 30;
} else {
days = 31;
}
// 计算该月的第一天是星期几
int weekday = 0;
for (i = 1900; i < year; i++) {
if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) {
weekday += 366 % 7;
} else {
weekday += 365 % 7;
}
}
for (i = 1; i < month; i++) {
if (i == 2) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
weekday += 29 % 7;
} else {
weekday += 28 % 7;
}
} else if (i == 4 || i == 6 || i == 9 || i == 11) {
weekday += 30 % 7;
} else {
weekday += 31 % 7;
}
}
weekday = (weekday + 1) % 7;
// 初始化二维数组和指针数组
for (i = 0; i < 6; i++) {
p[i] = calendar[i]; // 指针数组指向二维数组的每一行
for (j = 0; j < 7; j++) {
calendar[i][j] = 0;
}
}
// 填充日期
k = 1;
for (i = 0; i < 6; i++) {
if (i == 0) {
for (j = weekday; j < 7; j++) {
calendar[i][j] = k++;
}
} else {
for (j = 0; j < 7 && k <= days; j++) {
calendar[i][j] = k++;
}
}
}
// 打印日历
printf(" %d年%d月\n", year, month);
printf("日 一 二 三 四 五 六\n");
for (i = 0; i < 6; i++) {
for (j = 0; j < 7; j++) {
if (calendar[i][j] == 0) {
printf(" ");
} else {
printf("%2d ", calendar[i][j]);
}
}
printf("\n");
}
return 0;
}
```
该程序首先读取年份和月份,然后计算该月有多少天和该月的第一天是星期几。接着使用二维数组和指针数组来存储和操作日历数据,最后打印出日历。