高于均分的学生

高于均分的学生

时间: 1ms        内存:128M

描述:

输入n(<=100)个学生的姓名、学号和成绩,将其中高于平均成绩的姓名、学号和成绩输出。

输入:

第一行为学生人数 n
第二行到第n+1行,每行一个学生的姓名、学号和成绩。
学号和成绩都是整数。

输出:

高于平均成绩的姓名、学号和成绩
一名学生占一行
一行中各项间有一个空格

示例输入:

3
zhang 1001 100
li 1002 59
sun 1003 0

示例输出:

zhang 1001 100
li 1002 59

提示:

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

#include <stdio.h>
#include <stdlib.h>
struct student
{
    char name[10];
    int num,scu;
};
int main()
{
    struct student str[100];
    int n,sum=0,m,i;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%s%d%d",&str[i].name,&str[i].num,&str[i].scu);
    for(i=0;i<n;i++)
    {
        sum=sum+str[i].scu;
    }
    m=sum/n;
    for(i=0;i<n;i++)
    {
        if(str[i].scu>m)
        printf("%s %d %d\n",str[i].name,str[i].num,str[i].scu);
    }
    return 0;
}

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

#include <iostream>
#include <string>
using namespace std;
const int N=100;
string name[N];
int num[N],score[N];
int main()
{
    int i,n;
    double sum=0, aver;
    cin>>n;
    for (i=0; i<n; i++)
    {
        cin>>name[i]>>num[i]>>score[i];
        sum+=score[i];
    }
    aver=sum/n;
    for(i=0; i<n; i++)
        if(score[i]>aver)
            cout<<name[i]<<" "<<num[i]<<" "<<score[i]<<endl;
    return 0;
}

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

点赞

发表评论

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