求C语言高手帮忙做课程设计,题目如下,只用数组和函数编程,也可用循环语句,就是不要用结构体和指针,急
编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求分别用函数和数组实现:
1) 学生成绩的输入。
2)每个学生的平均分
3)每个课程的平均分
4)找出每门课程的最高分所对应的学生及课程名
5)将每个学生的总分和平均分降序排名打印
6)将每门课程的分数降序排名打印
7)打印的成绩单表项包括:序号,学号、数学、英语、计算机、......、总分、平均分。
追问:我的QQ184168569 明天一早就要交了很感谢你
答案:这题目好亲切啊,以前做过 ,给个联系你的QQ,晚上回去看看
其他://成绩输入
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <windows.h>
float* inputScore(int number,char* type){
int r; int i;
float *pInfo=(float*)malloc(sizeof(float)*number);
printf("输入成绩%s\n",type);
for(i=0;i<number;i++)
{
printf("请输入:");
r=scanf("%f",pInfo+i);
if(r==0) printf("input error\n"),exit(0);
}
return pInfo;
}
int * inputOrdinal(int number)
{
int r;
int i;
int *pInfo=(int*)malloc(sizeof(int)*number);
printf("输入序号\n");
for(i=0;i<number;i++)
{
printf("请输入:");
r=scanf("%d",pInfo+i);
if(r==0) printf("input error\n"),exit(0);
}
return pInfo;
}
float average(int number,float *score)
{
int i;
float count=0;
for(i=0;i<number;i++)
{
count+=score[i];
}
return count/number;
}
float maxScore(int number,float *score)
{
int i;
float count=0;
float max=0;
for(i=0;i<number;i++)
{
if(max<score[i])
max=score[i];
}
return max;
}
int main()
{
float aveEng=0;
float aveCmp=0;
int test=5;
int i;
float engMax;
float comMax;
//输入学生个数
int number;
printf("请输入多少个学生:");
scanf("%d",&number);
//输入序号 int *ordinal=inputOrdinal(number);
//输入成绩
float *engScore=inputScore(number,"英语");
float *cmpScore=inputScore(number,"计算机");
//计算平均分
aveEng=average( number,engScore);
aveCmp=average( number,cmpScore);
//计算最大值
engMax=maxScore(number,engScore);
comMax=maxScore(number,cmpScore);
printf("********计算中**********\n");
Sleep(2000);
printf("结果\n");
for(i=0;i<number;i++)
{
printf("序号:%d \n",ordinal[i]);
printf("英语:%2.f \t计算机:%2.f\n",engScore[i],cmpScore[i]);
}
printf("英语平均分:%2.f\t",aveEng);
printf("计算机平均分:%2.f\n",comMax);
printf("英语最大分:%2.f\t",engMax);
printf("计算机最大分:%2.f\n",comMax);
}
上一个:求C++修改文件的函数代码
下一个:为什么我装的C++一运行就出问题?提示的错误是