明天要交的C语言程序还有点小问题,不知道该怎么改了

来源:百度知道 编辑:UC知道 时间:2024/05/21 07:31:10
题目是这样的:输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:
1)排序用一个函数实现。
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。
下面是我设计的程序:
#include<stdio.h>
#include<stdlib.h>
#define SIZE 10
struct student
{
long int id[10];
int score[3];
float sum;
float ave;
} stu[SIZE];

main()
{
void save(void);
void sor(void);
int i;
float sum[SIZE];
for (i=0;i<SIZE;i++)
{
scanf ("%d,%d,%d,%d",&stu[i].id,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
.sum[i]=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
stu[i].sum=sum[i];
stu[i].ave=sum[i]/3;
}
FILE *fp;
fp=fopen ("stu_sor.dat","rb");
printf ("NUM IDNUMBER MATHS ENGLISH COMPUTER TOTAL AVERAGE\n");
for (i=0;i<SIZE;i++)
{
fread (

搞定

#include<stdio.h>
#include<stdlib.h>
#define SIZE 10
struct student
{
long int id[10];
int score[3];
float sum;
float ave;
} stu[SIZE];

main()
{
void save(void);
void sor(void);
int i,j;
float sum=0;
for (i=0;i<SIZE;i++)

{
scanf ("%d,%d,%d,%d",&stu[i].id,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]); }
for (i=0;i<SIZE;i++)
{for(j=0;j<3;j++)
{stu[i].sum=sum+stu[i].score[j]; }
sum=0;
stu[i].ave=stu[i].sum/3; }

FILE *fp;
fp=fopen ("stu_sor.dat","rb");
printf ("NUM IDNUMBER MATHS ENGLISH COMPUTER TOTAL AVERAGE\n");
for (i=0;i<SIZE;i++)
{
fread (&stu[i],sizeof(struct student),1,fp);
printf ("%2d,%13d,%4.2f,%5.2f,%7.2f,%5.2f,%5.2f",i+1,stu[i].id,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].su