1.两个scanf("")的出现都是必要的,保证循环的次数和i的大小不变,第二个scanf要放在循环的末尾(解决方式不唯一,也可以让初始i=-1,scanf位于循环开始)
使用数组时,应在恰当的地方对数组进行初始化,遍历数组。
用通俗的话来讲,其实就是数组就是用来存储固定大小的具有相同数据类型的,在内存空间连续的的数据类型的集合。
我们先抛开给出的定义不谈,我们来想想为什么C语言要导入数组这个概念。举个例子来说吧,假如一个班级有10名同学,我们要求这10名同学的语文成绩。如果在没有学习数组之前,我们的做法肯定是要定义出10个整形变量,然后对其进行赋值,试想一下,10个人就要定义了10个变量,那要是更多的人就需要定义出更多的变量了,很明显这种设计就显得很冗余,代码可读性低,这种设计不是我们想要的结果,在这种背景下,那有没有什么情况来解决呢,其实这就是我们今天的重点,定义一个数组,以上情况统统解决。
有个这个需求,我们再来看看上面说的数组的几大要点:
固定大小:就是需要我们在定义数组的时候需要将数组的大小给确定,从定义到程序结束,数组的大小都不能被改变。
相同数据类型:数组成员的数据类型都是一样。不可能同一个数组里面的成员有两种或以上的类型。
内存空间连续:数组的这些成员变量在内存空间上都是连续的,不是分散的。
数组定义
原文链接:https://blog.csdn.net/liung_/article/details/123295044
#include <stdio.h>
int main()
{
int i = 0;
int number[100];
int count = 0 ;
int x = 0;
scanf("%d", &x);
while (x != -1)
{
i++;
count += x;
number[i]=x;
scanf("%d", &x);
}
double ret = count*1.0/i;
if (count >0)
{
printf("平均数是%f\n", ret);
}
int t = 1;
//此时i已经被覆盖
//之前数组的输入是从number1 开始的,共i个
for ( t = 1; t <= i; t++)
{
if (number[t]>= ret)
{
printf("%d ", number[t]);
}
}
return 0;
!!数组是从零开始计数的,最好从0 开始输入
2.
在大多数编程语言中,数组的下标必须是整数类型。字符可以被用作数组的下标,但实际上它们会被转换为相应的整数值。在C语言中,字符类型被表示为ASCI码,所以字符A的ASCI码值为65。因此,arA]实际上等同于ar651,这样你就可以将值1赋给数组a的第66个元素。然而,需要注意的是,在使用字符作为数组下标时,要确保字符的取值范围在数组大小范围内,否则可能会号致访问越界。在上面的例子中,数组a的大小是255,因此只有在字符的ASCII码值在0到255之间时才是安全的。如果字符的ASCII码值超过了这个范围,就可能导致数组越界访问,导致不可预测的行为和错误。