实验8 数组基本应用
目录
8-1.c:设全班同学有10人,提示输入所有人的成绩后,完成以下操作:
8-3.c:输入班级10个同学的成绩,按成绩从大到小排序后输出。
8-4.c: 以2016-11-10的格式输入一个日期,利用数组完成合法性判断,并计算该日期是这一年的第几天。
8-5.c: 有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。
一 :实验目的
1:理解一维数组在内存中的存放形式。
2:掌握一维数组的定义和数组元素的引用。
二 :实验内容提要
1:一维数组的定义。
数据类型符 数组变量名[整形常量表达式]
如 :
#define N 10
void main()
{
int i=10;
double stu[N]={10,20,30,40,50};
for(i=5;i<=9;i++)
stu[i]=(i+1)*10;
for(i=0;i<=9;i++)
scanf(“%d”,&stu[i]);
for(i=0;i<=9;i++)
printf(“No. %d=%d\n”,i,stu[i]);
}
stu[0] | stu[1] | stu[2] | stu[3] | stu[4] | stu[5] | stu[6] | stu[7] | stu[8] | stu[9] |
10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 |
数组的大小必须是整形常量表达式,不能是变量和变量表达式。
若前面#define N 10,则可以int stu[N];
数组定义之后,系统将给其分配一定大小的内存单元。
数组所占内存单元的字节数 = 数组长度 *单个数组元素大小
数组中每个数组元素的类型均相同,他们占用内存中连续的存储单元。其中第一个数组元素的地址是整个元素所占内存块的低地址,也是数组的首地址。
2:一维数组的引用
C语言规定,数组是一种数据单元的序列,不能直接存取整个数组,只能引用数组中的各个数据单元。引用数据单元的格式为:
数组变量名[下标]
引用的时候注意下标的取值范围。
3:一维数组的初始化
一种是在数组定义时赋值,一种是先定义数组然后在程序中再对数组元素进行逐一赋值或循环赋值。
int s[10]={88,67,57,32,86,99};
int a[10];
a[0]=77;
a[1]=88;
a[2]=66;
for(i=0;i<=9;i++) scanf(“%d”,&a[i]);
4:sizeof运算符
计算对象占内存的大小
int a[]={11,22,33,44,55,66,77,88,99};
则sizeof(a)结果为40,sizeof(a[0])结果为4。
for(i=0;i< sizeof(a)/ sizeof(a[0]);i++)
三:实验题目
8-1.c:设全班同学有10人,提示输入所有人的成绩后,完成以下操作:
(1)统计并输出平均分和最高分、最低分
(2)找出在这10个成绩中超过平均值的那些数字并打印出来。
(3)输入一个学号,查询或修改该同学的成绩
提高题:设全班同学有10人,提示输入所有人的成绩后,显示菜单:
(1)统计并输出平均分和最高分、最低分
(2)找出在这10个成绩中超过平均值的那些数字并打印出来。
(3)查询某个同学的成绩
(4)修改某个同学的成绩
(5)删除成绩
(6)插入成绩
(7)退出
8-2.c:输入一个数组各元素的值,并将数组逆序存放。
8-3.c:输入班级10个同学的成绩,按成绩从大到小排序后输出。
8-4.c: 以2016-11-10的格式输入一个日期,利用数组完成合法性判断,并计算该日期是这一年的第几天。
8-5.c: 有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。
附注:实验为博主刚学C语言时候老师布置的作业,发表出来,仅供做题与参考。