一道,c语言编程题

来源:百度知道 编辑:UC知道 时间:2024/05/16 16:58:48
有 30 名学生,各有学号和成绩,输出成绩为前五名的学号和成绩,输出与平均成绩最接近的5名学号和成绩,输出不及格的学生的学号和成绩。
(请不要运用,结合体,联合)
当然是根据成绩计算

#include <stdio.h>
#include <math.h>
#define N 30

void main()
{
int student[2][N],temp,failst[2][N],n,ave;
printf("请输入30个学生的学号和成绩(以空格隔开):\n");
for(int i=0;i<N;i++)
{
scanf("%d %d",&student[0][i],&student[1][i]);
failst[0][i]=failst[1][i]=0;
}

//计算前5名
for(i=0;i<N;i++)
for(int j=i+1;j<N;j++)
if(student[1][j]>student[1][i])
{
temp=student[1][j];
student[1][j]=student[1][i];
student[1][i]=temp;

temp=student[0][j];
student[0][j]=student[0][i];
student[0][i]=temp;
}
printf("前五名是:\n");
for(i=0;i<5;i++)
printf("%d %d\n",student[0][i],student[1][i]);

//计算与平均成绩相近的5名
ave=0;
for(i=0;i<N;i++)
ave+=student[1][i];
ave=ave/N;
for(i=0;i<N;i++)
for(int j=i+1;j<N;j++)