好懵逼
#include <stdio.h>int main()
{
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int i, year;
printf("请输入一个年份:");
scanf("%d", &year);
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
{
days = 29; // 这个是什么意思啊 days【1】不是28嘛
}
for (i = 0; i < sizeof(days) / sizeof(days); i++)
{
printf("%2d月份:%d天\n", i+1, days); //这里的i+1 days【i】啥意思 days上面不是已经初始化值了嘛 i选用里面的某个值嘛
}
return 0;
}
这些课后作业我都做不出来{:10_266:} 数组的下标从0开始,月份却是从1开始。
i+1 就可以使打印出来的下标和月份对应起来。 本帖最后由 肖-肖 于 2021-4-18 14:04 编辑
没事,慢慢来呗
1. days = 29; // 这个是什么意思啊 days【1】不是28嘛
对days确实原先赋值的是28但是你的这个if判断是判断的假如这个year是闰年的话,那么就重新赋值days的
值,也就是重新给2月赋值为29.因为闰年的2月就是有29天嘛。
2. printf("%2d月份:%d天\n", i+1, days); //这里的i+1 days【i】啥意思 days上面不是已经初始化值了嘛 i选用里面的某个值嘛
首先你要明白i是数组的下标。它是从0开始的所以你不能说从0月份开始,所以要:i+1
days是已经赋值了,但是现在是要将他取出来并打印。它给的是%d
i不是选用的某个值,是下标,它和数组联合就是选用的某个值了-> days [ i ] 是
OK 希望对你有帮助 肖-肖 发表于 2021-4-18 13:59
没事,慢慢来呗
1. days = 29; // 这个是什么意思啊 days【1】不是28嘛
蟹蟹大佬
页:
[1]