首页 > 代码库 > 第八次作业
第八次作业
1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
#include<stdio.h> #define n 100000 int main() { int a,b,max,min,i=0,score[n],s,sum=0,num=0; float average; printf("请输入学生的成绩\n"); scanf("%d",&score[i]); max=score[i]; min=score[i]; while(score[i]>=0) { sum=sum+score[i]; if(score[i]>=max) { max=score[i]; b=i+1; } if(score[i]<min) { min=score[i]; a=i+1; } i++; printf("请输入学生的成绩\n"); scanf("%d",&score[i]); } average=(float)sum/i; printf("平均值是%.2f最大值是%d第%d个最小值是%d第%d个\n",average,max,b,min,a); printf("请输入你要查找到同学的成绩\n"); scanf("%d",&s); for(i=0;i<n;i++) { if(score[i]==s) { num=i+1; printf("这是第%d个学生\n",num); } } return 0; }
2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
#include<stdio.h> #define N 11 int main() { int num[N]={2,4,6,8,10,12,14,16,18,20}; int x,m,n; printf("请输入你要插入的数\n"); scanf("%d",&x); for(n=0;n<N;n++) { if(x<num[n]) { m=n; break; } } for(n=9;n>=m;n--) { num[n+1]=num[n]; } num[m]=x; for(n=0;n<N;n++) { printf("%3d",num[n]); } return 0; }
3.用数组实现火柴棍等式
#include<stdio.h> #define n 10 int main() { int i,j,k,x,y,z; int gen[n]={6,2,5,5,4,5,6,3,7,6}; for(i=0;i<10;i++) { x=gen[i]; for(j=0;j<10;j++) { y=gen[j]; for(k=0;k<10;k++) { z=gen[k]; if(i+j==k&&x+y+z==12) { printf("%d+%d=%d\n",i,j,k); } } } } return 0; }
个人总结:
当定义数组时,最好用#define宏定义
要看好下表是什么,用什么来表示
不能越界
实验总结:
每个数组元素是一个数组类型的变量
数组创建后不能改变大小,元素在内存中按顺序排列
数组不初始化,其元素值为随机数。
C语言不会对数组下标做越界检查
第八次作业
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。