自己第一次用结构体写程序,有好多错误!
我自己按http://www.bc-cn.net/bbs/dispbbs.asp?boardID=5&ID=89904&page=1写了个程序 怎么就不对呢!!?我是第一次用结构体 有好多东西不熟悉 ,还请指出错误,现在还不知到 运行起来能不能得到正确答案啊
#include"stdio.h"
#include"conio.h"
struct
{
int num;
char name[8];
float score[12];
float avar;
}sum[100];
float fun(struct sum[],int);
float fun(struct sum[],int n)
{
int x,y;
float i=0,j=0,c=0;
for(x=0;x<12;x++)
for(y=0;y<12;y++)
{
if((sum[n].score[y])>(sum[n].score[y+1]))
{c=sum[n].score[y];sum[n].score[y]=sum[n].score[y+1];sum[n].score[y+1]=c;}
}
for(x=0;x<12;x++)
i+=sum[n].score[x];
for(y=0;y<12;y++)
j=(i-(sum[n].score[0]+sum[n].score[11]))/10;
return j;
}
main()
{
int i=0,j=0,a,m=0;
float z;
while(1)
{
printf("\n编号:");
scanf("%d",&sum[i].num);
printf("\n姓名:");
gets(sum[i].name);
printf("\n请输入成绩:");
for(j=0;j<12;j++)
scanf("%f",&sum[i].score[j]);
sum[i].avar=fun(sum,i);
printf("\n编号:%d",sum[i].num);
printf("\姓名:%s",sum[i].name);
for(j=0;j<12;j++)
printf("\n平委平分:%f",sum[i].score[j]);
printf("\n平均分:%f",sum[i].avar);
i++;
printf("\n继续请按1,否则按2:");scanf("%d",&a);
if(a==2) break;
}
sum[i]='\0';
for(j=0;j<=i;j++){
for(m=0;m<=i;m++){
if(sum[m].avar<sum[m+1].avar)
{z=sum[m].avar;sum[m].avar=sum[m+1].avar;sum[m+1].avar=z;}}}
for(j=0;j<i;j++)
{
printf("\n从高到低平分:");
printf("\n\n编号:%d",sum[j].num);
printf("\n姓名:%s\n",sum[j].name);
for(a=0;a<12;a++)
printf("各平委平分:%f\t",sum[j].score[a];
printf("\n平均分:%f",sum[j].avar);
}
getch();
}