1.定义
1.数组是存储连续的多个相同数据类型的变量集合,数组属于构造数据类型
2.格式:数组类型 数组名[常量];
注意:常量不能为0,不能为小数,不能空着
3.命名规则:参考前面的数据命名相关内容
4.例:
ubuntu@ubuntu:0708$ gcc dingyi.c
ubuntu@ubuntu:0708$ ./a.out
arr[0]=9,brr[0]=�,crr[0]=0.000000
ubuntu@ubuntu:0708$ cat dingyi.c
#include<stdio.h>
int main(int argc,char const *argv)
{
int arr[5];
char brr[5];
double crr[5];
printf("arr[0]=%d,brr[0]=%c,crr[0]=%lf\n",arr[0],brr[0],crr[0]);
return 0;
}
ubuntu@ubuntu:0708$
5.数据初始化(三种方法)
A:全部初始化,数组长度为多少就初始化几个元素的值
B:局部初始化,初始化的个数小于数组长度,没有初始化的用0补齐
C:特殊初始化,在定义数组时,不给数组定义长度,数组长度由初始化个数决定
2.常规操作
1.输入输出,一定要用循环!!!
注意:由于c中不允许对字符数组以外的其他数组进行整体输入输出,因此只能找到数组元素,对单个元素进行操作
2.求和求均值,即对所有任意值进行累加(循环),均值不需要循环求
3.求最值,与每一个数值进行比较得出
4.查找
1.存在性查找:当数组中出现要查找的数据时,立即结束本次查找
2.统计性查找:将数组全部元素进行遍历一遍,统计出要查找数据的个数
统一举例:
ubuntu@ubuntu:0708$ ./a.out
请输入第1个学生的成绩:80
请输入第2个学生的成绩:90
请输入第3个学生的成绩:88
请输入第4个学生的成绩:99
请输入第5个学生的成绩:78
请输入第6个学生的成绩:89
请输入第7个学生的成绩:70
请输入第8个学生的成绩:96
请输入第9个学生的成绩:87
请输入第10个学生的成绩:98
数组中的元素分别是:80 90 88 99 78 89 70 96 87 98
总和为:-346315888,平均值为:-34631588.80
请输入您要查找的值:90
您要査找的值,存在于数组中
查找成功,您要找的值一共出现1次
ubuntu@ubuntu:0708$ cat juti.c
#include<stdio.h>
#define MAX 10
//宏定义一个常量
int main(int argc, const char *argv[])
//定义一个数组,用于存储班级所有成员的成绩
{
int score[MAX]={0};
//完成对成员成绩的输入
for(int i=0;i<MAX;i++)
{
//找到任意一个元素:score[i]
printf("请输入第%d个学生的成绩:",i+1);
scanf("%d",&score[i]);
}
//程序执行至此,表示数组元素全部赋值成功
//输出数组元素
printf("数组中的元素分别是:");
for(int i=0;i<MAX;i++)
{
printf("%d\t",score[i]);
}
putchar(10);
//输出一个回车换行
//求和值、均值
int sum = 0;
double avg = 0;
//记录总和
//记录平均值
//遍历数组中的所有元素
for(int i=0;i<MAX;i++)
{
sum += score;
}
//讲任意一个数据进行累加
//程序执行至此,表示总和已经求出来
avg = 1.0*sum/MAX;
printf("总和为:%d,平均值为:%.2lf\n",sum,avg);
//求最值(以求最大值为例)
int max =0;
int maxi = 0;
//存储数组的中最大值
//记录最大值所在的下标
//先将数组中的第一个当做最值
max = score[0];
maxi = 0;
//记录当前最值所在的下标
for(int i=0;i<MAX; i++)
{
//将当前的最值,与任意一个数据进行比较
if(max< score[i])
{
max = score[i];
maxi = i;
}
}
//更新最值中的数据//更新记录最值下标的变量
//程序执行至此,表示最值以及最值的下标已经求出printf("当前数组的最大值为:%d,在数组的第%d个位置\n",max,maxi+1);
//查找
int search = 0;//用于遍历数组的循环变量
int i=0;
printf("请输入您要查找的值:");
scanf("%d",&search);
//开始遍历数组,实现存在性查找
for(i=0;i<MAX;i++)//判断数据是否是要查找的数据
{
if(search == score[i])
{
break;
}
}
//判断是否查找到
if(i==MAX)
{
printf("查找失败\n");
}
else
{
printf("您要査找的值,存在于数组中\n");
};
//遍历数组,完成统计性查找
int count =0;
//计数器
for(int i=0;i<MAX;i++)
{
if(search == score[i])
{
count++;
}
}
//计数器自增
//循环结束后,对计数器进行判断
if(count == 0)
{
printf("查找失败\n");
}
else
{
printf("查找成功,您要找的值一共出现%d次\n",count);
}
return 0;
}
ubuntu@ubuntu:0708$