首页 > 代码库 > 第八次作业
第八次作业
1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。
#include<stdio.h> #include<stdlib.h> #define N 40 int main() { int n,i,sum=0,max,min,grade,a=1,b=1,c=1; int score[N]={0},imax[N],imin[N],grades[N]; double average; char x; printf("请输入学生的数量(<40)\n"); scanf("%d",&n); printf("请输入学生成绩:\n"); for(i=1;i<=n;i++) { scanf("%d",&score[i]); sum=sum+score[i]; } average=(double)sum/n; printf("平均成绩为%.2lf\n",average); max=score[1]; min=score[1]; for(i=1;i<=n;i++) { if(score[i]==max) { imax[a++]=i; } else if(score[i]>max) { max=score[i]; a=1; imax[a++]=i; } if(score[i]==min) { imin[b++]=i; } else if(score[i]<min) { min=score[i]; b=1; imin[b++]=i; } } printf("成绩最高的同学为:"); for(i=1;i<a;i++) { printf("%d ",imax[i]); } printf("号\n"); printf("成绩最低的同学为:"); for(i=1;i<b;i++) { printf("%d ",imin[i]); } printf("号\n"); printf("是否查询?(Y)\n"); fflush(stdin); if((x=getchar())==‘Y‘||x==‘y‘) printf("请输入你想查找的成绩。\n"); scanf("%d",&grade); for(i=1;i<=n;i++) { if(score[i]==grade) { grades[c]=i; c++; } } if(c==1) printf("成绩不存在。\n"); else { printf("符合你所查找成绩的学生有:"); for(i=1;i<c;i++) printf("第%d名学生 \n",grades[i]); printf("总共有%d名学生。",c-1); } }
2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。
#include<stdio.h> int main() { int i,x,a,b[11]={1,3,5,7,9,11,13,15,17,19}; scanf("%d",&a); for(i=10;i>=0;i--) { if(a>=b[i-1]) { for(x=10;x>i;x--) { b[x]=b[x-1]; } b[i]=a; break; } if(i==0) { for(x=10;x>i;x--) { b[x]=b[x-1]; } b[0]=a; break; } } for(i=0;i<11;i++) { printf("%d ",b[i]); } }
3.用数组实现火柴棍等式
#include<stdio.h> int main() { int a,b,c,i[10]={6,2,5,5,4,5,6,3,7,6}; for(a=0;a<=9;a++) { for(b=0;b<=9;b++) { for(c=0;c<=9;c++) { if(a+b==c&&i[a]+i[b]+i[c]==12) { printf("%d+%d=%d ",a,b,c); } } } } }
二、知识点总结
1、数组在定义的时候一定要有范围声明,这是由于c语言要先划定储存空间。
2、c语言不能定义动态数组。
三、实验报告
1、我只想说一件事,大家以后没事别重装系统!!!!!!!
第八次作业
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。