C++结构体之统计最高最低分

C++结构体之统计最高最低分

时间: 1ms        内存:128M

描述:

输入学生的姓名和成绩,统计出最高分的学生和最低分的学生。

输入:

输入5个学生的姓名和分数,用结构体完成

输出:

输出最高分的姓名和分数,最低分的姓名和分数

示例输入:

wang  98.8  li  67.9   zhang  56  lu   78.7  liu  70

示例输出:

MAX: wang 98.8
MIN: zhang 56

提示:

参考答案(内存最优[1092]):

#include<stdio.h>
struct information
{
    char name[20];
    double score;
};
int main ()
{
    int i,j;
    struct information student[5];
    struct information temp={};
    for (i=0;i<5;i++)
        scanf("%s %lf",&student[i].name,&student[i].score);
    for (i=0;i<5;i++)
        for (j=i;j<5;j++)
        {
            if (student[i].score>student[j].score)
            { temp=student[i];
                student[i]=student[j];
                student[j]=temp;
            }
        }
    printf ("MAX: %s %g\n",student[4].name,student[4].score);
    printf ("MIN: %s %g\n",student[0].name,student[0].score);
    
}

参考答案(时间最优[0]):

#include <iostream>
using namespace std;
struct  student
{
  char name[20];//fgu
  float score;
}stu[5];
int main()
{
  int i,max=0,min=0;//cgyujfc
for(i=0;i<5;i++)
{ cin>>stu[i].name>>stu[i].score;
 
if(stu[i].score>stu[max].score)//sztat
max=i;
if(stu[i].score<stu[min].score)//fcyuj
min=i;
}
cout<<"MAX:"<<" "<<stu[max].name<<" "<<stu[max].score<<endl;
cout<<"MIN:"<<" "<<stu[min].name<<" "<<stu[min].score<<endl;
return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注