菜鸟提问,请大神指点一下
请问我以下程序哪里出错了:求大神来指点一下。
# include <stdio.h>
float averscore(float b[10]);
void paixu(float c[10]);
int main(void)
{
int i;
float aver,a[10];
printf("input 10 data:");
for (i=0; i<10; i++)
{
scanf("%f",&a[i]);
}
aver = averscore(a);
printf("average_score = %.2f",aver);
paixu(a);
for (i=0; i<10; i++)
{
printf("%4.2f",a[i]);
}
return 0;
}
float averscore(float b[10])
{
int i;
float sum = 0,score;
for (i=0; i<10; i++)
{
sum = sum + b[i];
}
score = sum / 10;
return(score);
}
void paixu(float b[10])
{
int i,j,k;
float max;
for (i=0; i<10; i++)
{
max=b[i];
//k=i;
for (j=i+1; i<10; j++)
{
if(max < b[j])
{
max = b[j];
//k=j;
}
b[j] = b[i];
b[i] = max;
}
}
}
[解决办法]
没细看,但发现最明显的错误就是,paixu函数中嵌套的第二个for循环控制明显有问题,楼主的意思应该是j=i+1,然后j<10吧?楼主的代码明显死循环...