C语言的问题,不会了,帮帮我吧

一、实验目的
1.掌握一维数组的定义与引用
2.掌握常用的一维数组的相关算法
二、实验内容
1.按以下要求实现“学生成绩管理系统”的相关功能。
*******************学生成绩综合管理系统***************
1 成绩录入
2 计算平均分
3 计算最高分
4 成绩排序
5 退出
******************************************************
(1) 利用一维数组实现“1 成绩录入”功能(录入10个学生的成绩);
(2) 利用功能1的输入实现“2 计算平均分” 功能;
(3) 利用功能1的输入实现“3 计算最高分”功能,并输出最高分所对应的学号;(注意:最高分可能不止一个)
(4) 利用功能1的输入实现“4 成绩排序”功能。
注意:保留上次实验菜单的循环选择以及数据的有效性验证。

第1个回答  2015-04-24
#include "stdio.h" #define N 3 struct student {char num[10]; char name[20]; float score[3]; float sum; float aver; }stu[N]; int choose; void input(); void find(); void count(); void sort(); void input() { int i; float temp; for(i=0;i<N;i++) {printf("输入第%d个学生信息:\n",i+1); printf("number: "); scanf("%s",stu[i].num); printf("name: "); scanf("%s",stu[i].name); printf("score1: "); scanf("%f",&temp); stu[i].score[0]=temp; printf("score2: "); scanf("%f",&temp); stu[i].score[1]=temp; printf("score3: "); scanf("%f",&temp); getchar(); stu[i].score[2]=temp; } } void count() { float sum,aver; int i,j; for(i=0;i<N;i++) {sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; aver=sum/3.0; stu[i].sum=sum; stu[i].aver=aver; } printf(" 学生的总成绩及平均分 \n"); printf("学号 姓名 总成绩 平均分 \n"); for(i=0;i<N;i++) printf("%-8s%-10s%-9.2f%-9.2f\n",stu[i].num,stu[i].name,stu[i].sum,stu[i].aver); } void sort() {int i,j,k; float sum,aver; struct student temp; for(i=0;i<N;i++) {sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; aver=sum/3.0; stu[i].sum=sum; stu[i].aver=aver; k=i; for(j=i+1;j<N;j++) if(stu[k].sum<stu[j].sum)k=j; if(k!=i) {temp=stu[i]; stu[i]=stu[k]; stu[k]=temp;} } printf(" 学生成绩排名 \n"); printf(" 按名次 \n"); for(i=0;i<3;i++) printf("学号%-8s名字%-10s%-8.2f%-8.2f%-8.2f总分%-8.2f平均分%-8.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].aver); } void find() {int i,j,sum,flag=0; printf(" \n"); printf("有两科成绩不及格的同学是:\n"); printf(" \n"); for(i=0;i<N;i++) { sum=0; for(j=0;j<3;j++) if(stu[i].score[j]<60)sum++; if(sum>=2) {flag=1; printf("学号:%-8s名字:%-10s\n",stu[i].num,stu[i].name); } } if(flag==0) printf(" 没有两科都不及格的同学!!\n"); } void main() { printf(" 学生成绩管理系统 \n"); printf("1....成绩录入\n"); printf("2....成绩查询\n"); printf("3....成绩统计(平均成绩)\n"); printf("4....成绩排名\n"); printf("5....任意键退出\n"); printf("\n"); printf("\n"); printf("请输入您要进行的操作:\n"); scanf("%d",&choose); while(choose==1||choose==2||choose==3||choose==4) {switch(choose) { case 1:input(); break; case 2:find(); break; case 3:count(); break; case 4:sort(); break; } printf(" \n"); printf("\n"); printf("\n"); printf("请输入您要进行的操作:\n"); scanf("%d",&choose); } }
第2个回答  2015-04-24

参考代码:

追问

这个和我们的不一样啊,

本回答被提问者采纳
相似回答
大家正在搜