#include<stdio.h>
struct student
{
char num[6];
char name[10];
float score[3];
float ave;
}stud[50],s;
void main()
{
void display(struct student stud[],int count);
void sort(struct student stud[],int count);
int j,n=0;
float sum;
char ch;
do
{
sum=0;
printf("\n请你输入%d学生的基本信息:\n",n+1);
printf("学号%d:",n+1);
scanf("%s",stud[n].num );
printf("姓名:");
scanf("%s",stud[n].name );
for(j=0;j<3;j++)
{
printf("成绩%d:",j+1);
scanf("%f",&stud[n].score[j]);
sum+=stud[n].score[j];
}
stud[n].ave=sum/(float)3;
printf("是否继续(y/n):");
getchar();
scanf("%c",&ch);
n++;
}while(ch=='y');
display(stud,n);
sort(stud,n);
}
void display(struct student stud[],int count)
{
int i;
printf("\n学生的基本信息如下:\n");
printf("学号 姓名 平均分\n");
printf("--------------------------\n");
for(i=0;i<count;i++)
{
printf("%s %s %.2f\n",stud[i].num,stud[i].name,stud[i].ave);
}
}
void sort(struct student stud[],int count)
{
int i,j;
for(i=0;i<count;i++)
for(j=i+1;j<count;j++)
if(stud[j].ave>stud[i].ave)
{
s=stud[j];
stud[j]=stud[i];
stud[i]=s;
}
printf("\n平均分由大到小学生的基本信息:\n");
printf("学号 姓名 平均分\n");
printf("--------------------------\n");
for(i=0;i<count;i++)
printf("%s %s %.2f\n",stud[i].num,stud[i].name,stud[i].ave);
getch();
}
运行环境:WIN-TC
提示编译正确但运行后出现图示效果,为什么呢?望高手指教
[此贴子已经被作者于2007-2-5 13:55:52编辑过]