为什么数组逆序第一个for循环中要从i=0开始?i为什么要小于数组长度?
第二个for循环要从i=9开始?i为什么要大于等于0?
#include <stdio.h>
#define N 10
int main() {
int i;
int a[N];//数组长度为10
/*
int n;
scanf("%d",&n);//可以随意定义输入元素的数量,N只是数组元素的上限。
*/
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
printf("逆序输出:");
for (i = 9; i >= 0; i--) {
printf("%d ", a[i]);
}
return 0;
}
你在问i的取值范围之前,不应该先问i是干什么的吗,你都不知道i是干什么的,那它是多少跟你有什么关系呢
i是用来作为数组下标使用的,数组下标从0开始,到n-1结束(n是数组长度),那么i的取值范围自然也是从0开始,到n-1,i<n不就是最大能取到n-1吗
如果是逆序遍历,i从最大值开始取,取到0结束,那么如果n是10,i不就从9开始到0结束吗
把问题背景写出来,直接问?咋回答
你得理解数组的下标访问。
看你把初始数据存在哪里,
如果你把第一个数据存在 下标为0的位置,那么对于数据长度为10的数组来说,下标最大当然 是9,所以要小于10
同理第二个for循环 肯定要大于等于0