c语言编程题:用结构体数组,学生信息由学号、姓名,成绩组成,数据如下:201513135157 LI 90

使用结构体数组,将学生的数据按成绩从高到低排序显示到屏幕上
将学生中不及格学生的姓名显示出来
写一个函数,获取成绩低于平均分的学生记录并返回低于平均分的学生人数

#include<stdio.h>

#define N 3


struct student

{

char sno[20];

char name[20];

int score[20];

double avg;

}s[N];



void input()

{

int i,j;

for(i=0;i<N;i++)

{

printf("输入学号:");

scanf("%s",s[i].sno);

printf("输入姓名:");

scanf("%s",s[i].name);

printf("输入功课成绩:");

scanf("%d",s[i].score);

printf("\n");

}

}



int sortl(int n)

{    int i,j;

     double sum=0;

        n=0;

for(i=0;i<N;i++)//求平均分

{

sum=sum+s[i].score[i];

     s[i].avg=sum/N;}

   for(i=0;i<N;i++)//排序(依据平均分)

if(s[i].avg<s[i+1].avg)

{struct student t;

    t=s[i];

s[i]=s[i+1];

s[i+1]=t;

}

printf("不及格:\n");//找不合格

for(i=0;i<N;i++)

if(s[i].score[i]<60)

{

    n=n+1;

printf("%s\t",s[i].name);

printf("\n");

break;

}


 return n;//返回不及格的人的个数

}




void output()

{

int i,j;

printf("排序后(升序):\n");

printf("学号\t        姓名\t      成绩组成     平均\n");

for(i=0;i<N;i++)

{

printf("%s\t%s\t%d\t",s[i].sno,s[i].name,s[i].score[i]);

printf("%.2lf",s[i].avg);

printf("\n");

}

}

int main()

{

int m,k;

input();

k=sortl(m);

output();

printf("不及格人数%d\n",k);

return 0;

}

我写的有好多问题,帮忙修改也行,最好能整理一下发代码

TJC
浏览 15742回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP