另外,你这个函数display的指针用得很牵强。
给人好象你故意要用的感觉.
#include"stdio.h"
void display(int* ,char *,float * ,int *);
struct Student
{
int xuehao[50];
char name[50];
float chengji[50];
};
void main()
{
struct Student fun[20] ;
printf("请输入学员信息:\n");
char c;
int i=0,k=0;
float sum=0;
c='y';
do
{
printf("学号:");
scanf("%d",&fun[k].xuehao);
printf("\n姓名:");
fflush(stdin);
gets(fun[k].name);
printf("三门成绩:\n");
for( i=1;i<=3;i++)
{
fflush(stdin);
printf("成绩%d:",i);
scanf("%f",&fun[i-1].chengji);
}
printf("是否继续?<y or n>");
fflush(stdin);
c=getchar();
k++;
}while(c=='y');
printf("排序前的学员信息如下:");
printf("\n\t学号\t姓名\t平均成绩\n");
for(i=0;i<k;i++)
display(fun[i].xuehao,fun[i].name,fun[i].chengji,&k);
printf("排序后的学员信息如下:");
}
void display(int *xuehao,char *name,float *chengji,int *k)
{
float sum=0;
for(int i=1;i<=3;i++)
sum+=chengji[i-1];
sum/=3;
for(int j=1;j<*k;j++)
{
printf("%d\t%s\t%4.2f\n",xuehao,name,sum);
}
}
现在能输出N个人的了,可是输出的结果不对了