|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#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[1] = 29; // 这个是什么意思啊 days【1】不是28嘛
}
for (i = 0; i < sizeof(days) / sizeof(days[0]); i++)
{
printf("%2d月份:%d天\n", i+1, days[i]); //这里的i+1 days【i】啥意思 days上面不是已经初始化值了嘛 i选用里面的某个值嘛
}
return 0;
}
这些课后作业我都做不出来
本帖最后由 肖-肖 于 2021-4-18 14:04 编辑
没事,慢慢来呗
1. days[1] = 29; // 这个是什么意思啊 days【1】不是28嘛
对days[1]确实原先赋值的是28但是你的这个if判断是判断的假如这个year是闰年的话,那么就重新赋值days[1]的
值,也就是重新给2月赋值为29.因为闰年的2月就是有29天嘛。
2. printf("%2d月份:%d天\n", i+1, days[i]); //这里的i+1 days【i】啥意思 days上面不是已经初始化值了嘛 i选用里面的某个值嘛
首先你要明白i是数组的下标。它是从0开始的所以你不能说从0月份开始,所以要:i+1
days[i]是已经赋值了,但是现在是要将他取出来并打印。它给的是%d
i不是选用的某个值,是下标,它和数组联合就是选用的某个值了-> days [ i ] 是
OK 希望对你有帮助
|
|