0%

C语言 存储相同类型的数组

C语言的数组

先说了结构体,可以存储不同的类型,比如描述一个学生,有学号、姓名、成绩等。

那么我们现在只想了解某个班级的平均分数,这是就是同一类型的组合了,当然也可以使用结构体搞定,不过就大材小用了,我们这次就看看能存储相同类型的数组。

先看看数组的定义方式:

1
type array_name [array_size];

其中:

  • type为数组的类型,可以是我们前面说过的各种类型,比如int,float,double等
  • array_name为数组的名字
  • array_size为数组的元素数量

下面来看看如何用,比如我们希望初始化5个学生的成绩,首先需要定义一个含有5个元素的数组:

1
float score[5];

初始化以后需要赋值,如下所示:

1
2
3
4
5
score[0] = 76.0;
score[1] = 77.0;
score[2] = 89.0;
score[3] = 98.0;
score[4] = 99.0;

不知你有没有注意到,数组的下标是从0开始的,所以下标的范围为0~array_size-1。

这种初始化方式有点繁琐,还有一种声明初始化一起的语句为:

1
float score[size] = {76.0, 77.0, 89.0, 98.0, 99.0};

上面的两个方法效果是一样的。

好的,开始算算这5个学生的平均成绩吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*beginner/array/array1.c*/
#include <stdio.h>

int main()
{
const int size = 5;
float score[size] = {76.0, 77.0, 89.0, 98.0, 99.0};
float average_score;
float sum = 0;
int i;

for (i = 0; i < size; i++)
sum += score[i];

average_score = sum / size;

printf("The average score is %f\n", average_score);

return 0;
}

编译运行

直接输入make就可以了。

1
2
3
4
5
6
7
8
9
10
#beginner/array/Makefile
ALL : array1

struct1: array1.c
gcc -o array1 array1.c

.PHONY : clean

clean:
rm -f array1

运行输出如下:

1
2
$ ./array1
The average score is 87.800003
处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道