首页 > 代码库 > 第八次作业
第八次作业
1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
# include <stdio.h> # define N 100 int main () { int score [N] ,n,sum, i,max,min,index,grade,index1,index2; double average ; printf("输入学生的个数:\n"); scanf("%d",&n); for (i=0;i<n;i++) { printf("输入学生的成绩:\n"); scanf("%d",&score [i]); } //平均值 sum=0; for (i=0;i<n;i++) { sum+=score[i]; } average=(double)sum/n; printf ( "The average is:%.2f\n" , average ) ; //最大值 max=score[0]; index=0; for(i=0;i<n;i++) { if(score[i]>max) { max=score[i]; index=i; } } printf("最大值为%d,下标为%d\n",max,index+1); //最小值 min=score[0]; index1=0; for(i=0;i<n;i++) { if(score[i]<min) { min=score[i]; index1=i; } } printf("最小值为%d,下标为%d\n",min,index1+1); //学生位置 index2=0; printf("请输入一个学生的成绩:\n"); scanf("%d",&grade); for(i=0;i<n;i++) { if(grade==score[i]) { index2=i; printf("此学生是第%d个学生",index2+1); break; } } return 0; }
2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
# include <stdio.h> # define N 11 int main () { int a,b,c,d,i; int scare [N]={1,3,5,7,9,11,13,15,17,19}; printf("请插入一个数字:\n"); scanf ("%d",&a); d=11; for (i=0;i<11;i++) { if (a<scare[i]) { d=i+1; printf("插入到%d位\n",d); break; } } for (i=d-1,c=N-1;i<=c;c--) { scare[c]=scare[c-1]; } scare[i]=a; for (i=0;i<N;i++) { printf(" %d",scare[i]); } return 0; }
3.用数组实现火柴棍等式
# include <stdio.h> int main () { int a,b,c,sum; int match[10]={6,2,5,5,4,5,6,3,7,6}; c=0; sum=0; for (a=0;a<=9;a++) for (b=0;b<=9;b++) { c=a+b; if(c>9) { break; } sum=match[a]+match[b]+match[c]; if (sum==12) { printf("%d+%d=%d\n",a,b,c); } } return 0; }
附加题
输入一行任意长的数字,用数组元素作为计数器统计每个数字出现的次数。用下标为0的元素统计0出现的次数,用下标为1的元素统计1出现的次数…
二.知识点:
1.一维数组的定义方式: 数据类型 数组名[数组长度];
2.数组的特点
(1)数组中的每一个元素都属于同一种数据类型 (2)数组一旦创建,不能改变大小 (3)数组中的元素在内存中是连续依次排列的
3.(1)一维数组的引用 数组必须先定义,后使用 (2)只能逐个引用数组元素,不能一次引用整个数组(3) 每个数组元素是一个数组类型的变量
4.(1)数组元素表示形式: 数组名[下标]
(2)下标从0开始
(3)允许快速随机访问
(4)引用时下标允许是int型变量或表达式 a[i]
(5)C语言对数组不作越界检查,使用时要注意
越界的数组访问可能导致程序崩溃,因此,这是程序员的责任来保证程序只使用有效的下标值:[0,数组的大小-1]
5.一维数组的赋值
(1)初始化方式 int a[5]={1,2,3,4,5}; 等价于:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5;
(2)说明:<1> 数组不初始化,其元素值为随机数<2>只给部分数组元素赋初值,则其后的元素被初始化为0<3>当全部数组元素赋初值时,可不指定数组长度
6.在数组定义后对数组进行动态赋值 通常通过循环结构实现
7.数组变量本身(数组名)不能被赋值
8.要把一个数组的所有元素交给另一个数组,必须采用 数组遍历
三.实验总结:
1.应将min=0改写为min=score[0];
2.在输出值那再让下标加1;
3.第二题要考虑插入的值为最大值的情况
4.第二题因要插入一个只所以要数组元素为11
第八次作业