1.简单介绍
就像数据可以存放在变量中,每个变量有名字、类型、以及内存空间。还可以用数组来保存 相同数据类型 的数据。
那么就避免了使用很多个独立的变量。数组是长度固定的数据结构,用来存放指定类型的数据。
2.初试数组
int num1,num2,num3...
类似的,可以使用数组:
Q1:输入一组数据,求平均值并且输出大于平均值的数:
#include <stdio.h>
int main()
{
int x= 0, sum = 0;
int cnt = 0;
int number[100] ;//定义数组
printf("请输入多个数字:");
scanf_s("%d", &x);
while (x != -1)
{
number[cnt] = x;//对数组中的元素赋值,cnt默认为0
sum = sum + x;//储存输入的数据,计算求和
cnt++;//可以计数,也可以让数组使用
scanf_s("%d", &x);//x再次读取输入的数据
}
if (cnt >= 0)
{
int average = sum / cnt;//计算平均值
printf("平均值为:%d\n", average);
printf("大于平均值的数字有:\n");
int i;
for(i = 0; i < cnt; i++)//for循环遍历数组
{
if (number[i] > average)
printf("%d\t",number[i]);
}
}
}
2.定义数组
2.1格式:
- <类型> 变量名称 [元素数量];
类型是指数组当中每个数据单元的类型;数组是一种变量;元素的数量 表达式的值 必须是整数(个数);
例如
int grades[100];
double weight[90];
2.2特点:
- 一旦创建就不能改变(内存)大小
- 但是数组元素的值可以计算 (count[0]++)
- 其中所有元素的数据类型相同
- 数组的单元数据的内存是紧密依次排列的
- 数组在 [ ] 中的数字叫做下标或者索引,从0开始
- 在有效的范围内使用数组
- 可以创建长度为0的数组,但是没有意义
———————————————————
int a[10];
其实没有int a[10],只存在a[0]到a[9]!!
3.用数组做散列计算
#include <stdio.h>
int main()
{
//思路:9个数字出现的次数要使用9个变量,刚好数组就可以满足条件
//定义并 初始化数组
int count [10];
int i = 0;
for (i = 0; i <= 9; i++)
{
count[i] = 0;
}
//输入数字,储存、并计数
int x;
printf("请输入0到9的任意数量的数字,输入-1代表结束:");
scanf_s("%d", &x);
while (x != -1)
{
if (x <= 9 && x >= 0)
{
count[x]++;//只是记录每个数字出现的次数,使用数组的下标就可以对应上!
scanf_s("%d", &x);//两次scanf函数的使用,一旦满足while和if循环,就可以一直读取&x(因为是循环)
}
}
//打印出每个数字以及对应的次数
for (i = 0; i <= 9; i++) //这里可以用for循环来逐次打印每个数字、对应的次数(未出现的默认为0)
{
printf("%d:%d ", i, count[i]);
}
}