我是靠谱客的博主 开心发箍,最近开发中收集的这篇文章主要介绍有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名学生,每个学生的数据包括学号、姓名、数学成绩、语文成绩,从键盘输入N名学生的数据,并计算出每个学生的平均成绩,最后显示最高平均分的学生的信息,包括学号,姓名,两门课的成绩,平均分数(保留小数点后所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部