帮我改错 关于C语言

来源:百度知道 编辑:UC知道 时间:2024/05/23 19:06:48
题目
输入一个班n(若n=10)个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:
1)排序用一个函数实现。
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。
3)按实验报告电子模板格式填写实验内容。

我的程序
#include<stdio.h>
#define N 10
struct student
{unsigned long num[6];
int score[3];
float aver;
}st[N],t;

void swap(struct student x)
{int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(st[i].aver<st[j].aver)
{t=st[i];
st[i]=st[j];
st[j]=t;}

void main()
{
int i,j;
float sum;
for(i=0;i<N;i++)
{printf("\n请输入%d的成绩:\n",i+1);
printf("学号:");
scanf("%s",st[i].num);
sum=0;
for(j=0;j<3;j++)
{
printf("成绩%d",j+1);
scanf("%d",&st[i].score[j]);
sum=sum+st[i].score[j];
}
st[i].aver=sum/3.0;
}
swap (i);
for(i=0

#include<stdio.h>
#define N 10
struct student
{char num[10];
int score[3];
float aver;
}st[N],t;
typedef struct student Student,*Stu;

void swap(Stu x,Stu y)
{Student s;
s=(Student)*x;
(Student)*x=(Student)*y;
(Student)*y=s;
}
void sort()
{
int i,j,k;
float f;
Student s;
for(i=0;i<9;i++)
for(j=i;j<10;j++)
if(st[j].aver<st[i].aver) swap(&st[i],&st[j]);
}
void main()
{
int i,j;
float sum;
for(i=0;i<N;i++)
{
printf("学号:\n");
scanf("%s",&st[i].num);
printf("请输入%d的成绩:\n",i+1);
sum=0;
for(j=0;j<3;j++)
{
printf("成绩: %d",j+1);
scanf("%d",&st[i].score[j]);
sum=sum+st[i].score[j];
}
st[i].aver=sum/3.0;
}
sort();
for(i=0;i<N;i++)
{
printf("%d %d %d %d %d %6.2f\n",i+1,s