float问题
struct st
{
float average;
char name[7];
float score[5];
}student[5];
float input(struct st *p)
{
int i,j;
for(i=0;i<5;i++)
{
scanf("%s",p[i].name);/*这里为什么输入浮点的时候提示错误*/
printf("the number is :");
for(j=0;j<5;j++)
scanf("%f",&p[i].score[j]);
}
}
float avg(struct st *p,int n)
{
int i,j,k;
float temp;
for(i=0;i<5-1;i++)
{
k=i;
for(j=i+1;j<5;i++)
if((p+n)->score[k]>(p+n)->score[j])
k=j;
if(k!=i)
{
temp=(p+n)->score[i];
(p+n)->score[i]=(p+n)->score[k];
(p+n)->score[k]=temp;
}
}
(p+n)->average=((p+n)->score[1]+(p+n)->score[2]+(p+n)->score[3])/3;
}
main()
{
int i,j,k;
float temp;
input(student);
for(i=0;i<5;i++)
student[i].average=avg(student,i);
for(i=0;i<5-1;i++)
{
k=i;
for(j=i+1;j<5;i++)
if(student[k].average>student[j].average)
k=j;
if(k!=i)
{
temp=student[i].average;
student[i].average=student[i].average;
student[i].average=temp;
}
}
for(i=0;i<5;i++)
printf("%s%f",student[i].name[7],student[i].average);
}