高于均分的学生
时间: 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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。