描述:
有n个学生,每个学生的数据包括学号、姓名和3门课程的成绩,
要求输出平均成绩高于90分以上(包括90分)或全部课程成绩均在85分以上(包括85分)的学生信息(包括学号和姓名),
如果没有符合条件的,则输出“No”。
输入:
有n+1行,第1行有1个整数,即学生数n;接下来有n行,每行有7个数据项,分别为学号、姓名和3门课程成绩,数据项之间用空格隔开。
输出:
有多行,每行包含2个数据项,即学号、姓名,数据项之间用空格隔开。
提示:
学生数n大于1小于等于20,“学号”是4位整数,“姓名”为不超过8个字符的字符串,“成绩”为0~100。
#include<stdio.h>
struct student
{
int num;
char name[8];
double score[3];
}stu[20];
int main()
{
int n = 1, i, j, k, a = 0;
//学生数输入
scanf("%d", &n);
//数据输入
for(i=0; i<n; i++)
{
scanf("%d", &stu[i].num);
scanf("%s", stu[i].name);
for(j=0; j<3; j++)
scanf("lf", &stu[i].score[j]);
}
//数据处理
int sum;
double avg[n];
for(i=0; i<n; i++)
{
for(j=0; j<3; j++)
{
sum += stu[i].score[j];
for(k=0; k<n; k++)
{
avg[k] = (stu[i].score[j])/n;
if( avg[k] >= 90 && stu[i].score[j]>=85 )
{
printf("%d %s", stu[i].num, stu[i].name);
a = 1;
}
}
}
}
if(a == 0) printf("No");
return 0;
}
测试数据为:
3
1001 Make 86 91 89
1002 Linda 78 78 80
1003 Jone 90 67 71
1001 Make
或
5
1011 Kitty 66 71 79
1012 Lena 78 79 90
1013 Marry 83 77 78
1014 Jone 91 89 92
1015 Make 85 85 86
1014 Jone
1015 Make