这个程序。。TempFile.exe 遇到问题需要关闭,求指导 ,顺便求补全
/* Note:Your choice is C IDE */#include "stdio.h"
#define N 50
typedef struct{
char number[13];
char name[10];
int Chinese;
int Maths;
int English;
int Physical;
int History;
int average;
struct hou *next;
}hou,*ht;
ht creat(ht B,int n){
int i,j;
B=(ht)malloc(n*sizeof(hou));
for(i=0;i<n;i++){
printf("请输入第%2d个学生的学号 姓名 ",i+1);
scanf("%s%s",B[i].number,B[i].name);
for(j=rand()%200;j>0;j--)rand();
B[i].Chinese=rand()%100;B[i].Maths=rand()%100;B[i].English=rand()%100;B[i].Physical=rand()%100;B[i].History=rand()%100;
B[i].average=(B[i].Chinese+B[i].Maths+B[i].English+B[i].Physical+B[i].History)/5;
}
return B;
}
print(ht B,int n,int x[N]){
int i;
printf("学号 姓名 语文 数学 英语 物理 历史 平均分\n");
for(i=0;i<n;i++){
printf(" %-5s%-5s%-5d%-5d%-5d%-5d%-5d%-5d\n",B[x[i]].number,B[x[i]].name,B[x[i]].Chinese,B[x[i]].Maths,B[x[i]].English,B[x[i]].Physical,B[x[i]].History,B[x[i]].average);
}
}
maopao(ht B,int n){
int O[N];int j,max,i;
for(i=0;i<n;i++)O[i]=i;
for(i=0;i<n;++i)
for(j=i;j<n;++j){
if(B[O[i]].average<B[O[j]].average){
max=O[i];
O[i]=O[j];
O[j]=max;}}
print(B,n,O);
}
choose(ht B,int n){
int x[N],y[N];int j,max,i,k,m;
for(i=0;i<n;i++)x[i]=i;
for(k=0;k<=n-1;k++)
for(i=n-1;i>=k;--i)
for(j=i-1;j>=0;--j){
if(B[x[j+1]].average>B[x[j]].average){
m=x[j+1];
x[j+1]=x[j];
x[j]=m;}
}
print(B,n,x);
}
Single(ht B,int n,int x[N]){
ht A,p,b;int i;
A=(ht)malloc(sizeof(hou));
A->next=NULL;p=A;
for(i=0;i<n;++i){
p->next=B+x[i];
B[x[i]].next=NULL;
p=p->next;
}
B=A->next;
while(b){
printf(" %-5s%-5s%-5d%-5d%-5d%-5d%-5d%-5d\n",b->number,b->name,b->Chinese,b->Maths,b->English,b->Physical,b->History,b->average);
b=b->next;
}
}
void main()
{ ht B[4];int x[N],y[N],i,j,n[4],c=0,d=0;
for(i=0;i<4;++i){
printf("请输入第%d个班的人数:",i+1);
scanf("%d",&n[i]);
B[i]=creat(B[i],n[i]);}printf("记录【初始化】输出\n");
for(j=0;j<4;++j){
for(i=0;i<n[i];i++)x[i]=i;
print(B[j],n[i],x);}
for(j=0;j<4;++j){
printf("第%d个班级冒泡排序输出\n",j+1);
maopao(B[j],n[j]);
}
for(j=0;j<4;++j){
printf("第%d个班级选择排序输出\n",j+1);
choose(B[j],n[j]);
}
for(j=0;j<4;++j)
{
printf("第%d个班级单链表输出:\n",j+1);
Single(B[j],n[j],y[j]);
}
}
编写一个成绩生成函数。使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0-100之间的整数),通过调用该函数生成全部学生的成绩。
编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中。
用冒泡排序法对4个班的成绩按每个同学的平均成绩的进行降序班内排序。
用选择排序法对4个班的成绩按每个同学的平均成绩的进行降序班内排序。
对已按平均成绩排好序的4个班的同学构造一个按平均成绩递减方式排列的新的单链表。
(6)设计一个菜单,至少具有上述操作要求的基本功能。
2个问题解决不了求大神指导下午要用