我是靠谱客的博主 开心发箍,这篇文章主要介绍有N名学生,每个学生的数据包括学号、姓名、数学成绩、语文成绩,从键盘输入N名学生的数据,并计算出每个学生的平均成绩,最后显示最高平均分的学生的信息,包括学号,姓名,两门课的成绩,平均分数(保留小数点后,现在分享给大家,希望可以做个参考。
函数接口定义:
void InputData(STU *p,int num); STU *FindMaxIndex(STU *p,int num);
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如: #include <stdio.h> #define N 5 typedef struct { int id; char name[20]; int math; int chinese; double aver; }STU; void InputData(STU *p,int num); STU *FindMaxIndex(STU *p,int num); int main(void) { STU classone[N]; STU *pmax; InputData(classone,N); pmax=FindMaxIndex(classone,N); printf("maxinfo:%d %s %d %d %.1fn",pmax->id,pmax->name,pmax->math,pmax->chinese,pmax->aver); return 0; } /* 请在这里填写答案 */
输入样例:
2 张 78 34
1 李 67 89
4 王 90 67
3 刘 85 95
5 赵 56 89
输出样例:
maxinfo:3 刘 85 95 90.0
//简单的输入问题
void InputData(STU *p,int num)
{
for(int i=0;i<num;i++)
{
scanf("%d %s %d %d",&(p+i)->id,(p+i)->name,&(p+i)->math,&(p+i)->chinese);
(p+i)->aver=(double)(((p+i)->math+(p+i)->chinese)/2.0);
}
}
//简单的遍历数组找最大值问题
STU *FindMaxIndex(STU *p,int num)
{
double max=-100.0;
STU* ret=NULL;
for(int i=0;i<num;i++)
{
if((p+i)->aver>max)
{
max=(p+i)->aver;
ret=(p+i);
}
}
return ret;
}
可以试试自己qsort排序后再输出最大值
最后
以上就是开心发箍最近收集整理的关于有N名学生,每个学生的数据包括学号、姓名、数学成绩、语文成绩,从键盘输入N名学生的数据,并计算出每个学生的平均成绩,最后显示最高平均分的学生的信息,包括学号,姓名,两门课的成绩,平均分数(保留小数点后的全部内容,更多相关有N名学生,每个学生内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复