第八次作业
1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
#include<stdio.h> #define N 100 int main() { int i,n,a,b,c,x,sum,max,min; int num[N]; double ping; printf("请输入一共有多少学生\n"); scanf("%d",&n); sum=0; for(i=0;i<n;i=i+1) { printf("input the score\n"); scanf("%d",&num[i]); } for(i=0;i<n;i=i+1) { sum+=num[i]; } ping=(double)sum/n; printf("averge=%.2lf\n",ping); max=num[0]; for(i=0;i<n;i=i+1) { if(num[i]>max) { max=num[i]; } } for(i=0;i<n;i=i+1) { if(num[i]==max) { a=i+1; printf("max=%d,index=%d\n",max,a); } } min=num[0]; for(i=0;i<n;i=i+1) { if(num[i]<min) { min=num[i]; } } for(i=0;i<n;i++) { if(num[i]==min) { x=i+1; printf("min=%d,index=%d\n",min,x); } } printf("input the score\n"); scanf("%d",&x); for(i=0;i<n;i=i+1) { if(x==num[i]) { c=i+1; printf("found,the number is%d\n",c); } } return 0; }
2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
#include <stdio.h> #define N 11 int main() { int a,b,c,d,i; int number[N]={1,3,5,7,9,11,13,15,17,19}; printf("请输入插入的数字\n"); scanf("%d",&a); for (i=0;i<N-1;i++) { if(a<number[i]) { b=i;break; } else { b=10; } } c=N-1; for (i=c;i>=b;i--) { number[i]=number[i-1]; } number[b]=a; for (i=0;i<N;i++) { printf("%4d",number[i]); } return 0; }
3.用数组实现火柴棍等式
#include <stdio.h> int main() { int a,b,c; int match[10]={6,2,5,5,4,5,6,3,7,6}; for(a=0;a<=9;a++) for(b=0;b<=9;b++) { c=a+b; if(c>9) { break; } if(match[a]+match[b]+match[c]==12) { printf("%d+%d=%d\t",a,b,c); } } return 0; }
知识点总结
1.一堆数组的定义方式:数据类型 数组名[数组长度]。
2.数组的特点:1)数组中的每一个元素都属于同一种数据类型。
2)数组一旦建立,不能改变大小。
3)数组中的元素在内存中是依次排列的。
实验总结
1.数组必须先定义后使用。
2.只能逐个引用数组元素,不能一次引用整个数组。
3.每个数组元素是一个数组类型的变量。
4.数组不初始化,其元素为变量值。