17~18 课后题 求注释 求讲解
#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;
}
for (i = 0; i < sizeof(days) / sizeof(days); i++)
{
printf("%2d月份:%d天\n", i+1, days);
}
return 0;
}
这里for (i = 0; i < sizeof(days) / sizeof(days); i++)
for语句里面 i < sizeof(days) / sizeof(days)这句求注释 求 讲解没理解明白 sizeof(days) / sizeof(days)
sizeof(days)//求 数组 里面每个元素的int 总合;数组有12个元素,也就是sizeof(int) * 12
sizeof(days) //单个元素的长度 也就是sizeof(int)
sizeof(days) / sizeof(days) //也就是算有多少个元素
sizeof(int)这个能理解吗? 闪电猫网络 发表于 2017-11-7 21:01
sizeof(int)这个能理解吗?
sizeof(int)
求 int 占空间大小
sizeof是运算符
打印尺寸
那个 strlen打印长度 这就是求数组的元素个数。 ba21 发表于 2017-11-7 21:03
sizeof(days) / sizeof(days)
sizeof(days)//求 数组 里面每个元素的int 总合;数组有12个元素,也就 ...
sizeof(days) / sizeof(days) //也就是算有多少个元素
这句就是定义12个啊能看到为什么还要求一下呢?
i < sizeof(days) / sizeof(days)
直接写 for (i = 0; i < 12; i++)得了呗 这样不是更容易看点? 3-3 发表于 2017-11-7 21:22
这就是求数组的元素个数。
是 求 数组里面元素的个事 ?
县城的 12个 为什么要求一下不是都写出来了么? 程序里是这样定义的:
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
里面并没有明确。 为了程序的灵活性,假设你这个时候要往数组加几个数字,然后一行一行的看一下哪里要改一下个数,这个太麻烦,你这个程序是少一点,改也就for这个地方,要是写到后面几百行甚至更多,就很麻烦了。
而且这种想法也可以用宏定义个数,要是改变数据就该一下宏定义的个数就可以了,很方便。 屁哥 发表于 2017-11-7 21:22
sizeof(days) / sizeof(days) //也就是算有多少个元素
这句就是定义12个啊能看到为什么还要求一 ...
求注释 求 讲解没理解明白
你爱用什么就用什么好吧。没求你用sizeof(days) / sizeof(days) 3-3 发表于 2017-11-7 21:28
程序里是这样定义的:
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
哦知道了 丶忘却的年少o 发表于 2017-11-7 21:28
为了程序的灵活性,假设你这个时候要往数组加几个数字,然后一行一行的看一下哪里要改一下个数,这个太麻烦 ...
老司机改一下看看呗 ba21 发表于 2017-11-7 21:37
求注释 求 讲解没理解明白
你爱用什么就用什么好吧。没求你用sizeof(days) / sizeof(days)
。。。。。。。。。。。。。。。。。。。。。。。。。{:5_100:} 上面有人说了,就是计算有多少个元素, 用数组在内存中的总长度除以一个元素的长度
小学教过的,金额除以单价等于数量 屁哥 发表于 2017-11-7 21:42
老司机改一下看看呗
我给你个范本,你理解就行了,没必要去该这个程序,我觉得sizeof比较好,因为很多时候宏定义的空间往往是大于需要的数据量,防止溢出的,当然也有刚好的。
#include <stdio.h>
#define MAX 5 // 这里定义了最大只能是5个,要是你要往数组里加几个数据,就把这个5改成你要的数就可以了
int main()
{
int array = {1, 2, 3, 4, 5};
int i;
for (i = 0; i < MAX; i++) // 这里直接就定好了要多少个,综合下来你就改一个地方,增加一个地方
{
printf("%d ", array);
}
printf("\n");
return 0;
} 丶忘却的年少o 发表于 2017-11-7 22:22
我给你个范本,你理解就行了,没必要去该这个程序,我觉得sizeof比较好,因为很多时候宏定义的空间往往是 ...
这个宏定义MAX是不是要写6还一个结束符/0 丶忘却的年少o 发表于 2017-11-7 22:22
我给你个范本,你理解就行了,没必要去该这个程序,我觉得sizeof比较好,因为很多时候宏定义的空间往往是 ...
这个宏定义MAX是不是要写6还一个结束符/0 屁哥 发表于 2017-11-7 23:09
这个宏定义MAX是不是要写6还一个结束符/0
额……12345总共5个,而且这个是数组,不是字符串,不用加。 哦 丶忘却的年少o 发表于 2017-11-7 23:41
额……12345总共5个,而且这个是数组,不是字符串,不用加。
谢谢
页:
[1]
2