发布网友
共1个回答
热心网友
//输入学生基本信息
void Appendscore(CLASS *p)
{
int i=0,j,n,sum;
char ch;
printf("请输入你要输入的班级号:\n");
scanf("%d",&n);
(p+n)->banji=n;
do
{
sum=0;
printf("请输入第%d个学生的信息\n",i+1);
printf("请输入学号:\n");
scanf(" %d",&(p+n)->stu[i].num);
printf("请输入姓名:\n");
scanf("%s",(p+n)->stu[i].name);
printf("请输入三科成绩:\n");
for(j=0;j<3;j++)
{
printf("请输入第%d科成绩:",j+1);
scanf("%d",&(p+n)->stu[i].score[j]);
sum+=(p+n)->stu[i].score[j];
}
(p+n)->stu[i].sum=sum;
(p+n)->stu[i].average=(float)sum/3.0;
i++;
printf("你想继续输入吗?");
scanf(" %c",&ch);
}while(ch=='Y'||ch=='y');
}
//输出学省的基本信息
void print(CLASS *p)
{
int n,i,j;
printf(" *********************班级基本信息表**************************\n");
printf("请输入应输出的班级号:\n");
scanf("%d",&n);
printf(" 班级\t学号\t姓名\tscore1\tscore2\tscore3\tsum\taverage\n");
for(i=0;i<M;i++)
{
printf("\n%d\t%d\t%s\t",(p+n)->banji,(p+n)->stu[i].num,(p+n)->stu[i].name);
for(j=0;j<3;j++)
printf("%d\t",(p+n)->stu[i].score[j]);
printf("%d\t%.2f\n",(p+n)->stu[i].sum,(p+n)->stu[i].average);
}
printf("输入任意键继续。。");
getch();
}
//学生的平均成绩进行排序
void Sortitem(CLASS cla[])
{
int i ,j,k,min,n;
int order;
printf("请输入对那个班成绩排序:\n");
scanf("%d",&n);
printf("请输入排序方式(1.升序,2降序)");
scanf("%d",&order);
if(order==1)
{
for(i=0;i<M;i++)
{min=i;
for (j=i+1;j<M;j++)
if(cla[n].stu[min].average>cla[n].stu[j].average)
{
IntSwap(&cla[n].stu[min].num, &cla[n].stu[j].num);
CharSwap(cla[n].stu[min].name, cla[n].stu[j].name);
for (k=0; k<3; k++)
{
IntSwap(&cla[n].stu[min].score[k], &cla[n].stu[min].score[k]);
}
IntSwap(&cla[n].stu[min].sum, &cla[n].stu[j].sum);
FloatSwap(&cla[n].stu[min].average, &cla[n].stu[j].average);
}
}
}
else if(order==2)
{
for(i=0;i<M;i++)
{min=i;
for (j=i+1;j<M;j++)
if(cla[n].stu[min].average<cla[n].stu[j].average)
IntSwap(&cla[n].stu[min].num, &cla[n].stu[j].num);
CharSwap(cla[n].stu[min].name, cla[n].stu[j].name);
for (k=0; k<3; k++)
{
IntSwap(&cla[n].stu[min].score[k], &cla[n].stu[min].score[k]);
}
IntSwap(&cla[n].stu[min].sum, &cla[n].stu[j].sum);
FloatSwap(&cla[n].stu[min].average, &cla[n].stu[j].average);
}
}
printf("已排序!");
}
/*交换两个整型数*/
void IntSwap(int *pt1, int *pt2)
{
int temp;
temp = *pt1;
*pt1 = *pt2;
*pt2 = temp;
}
/*交换两个实型数*/
void FloatSwap(float *pt1, float *pt2)
{
float temp;
temp = *pt1;
*pt1 = *pt2;
*pt2 = temp;
}
自己在改改吧给你三个函数