问答详情
源自:6-12 综合练习

输出最高的分数有这一段看不懂

int gao(int score[])
{
 int i;
 for(i=0;i<9;i++)
 {
 if(score[i]>score[i+1])
 score[i+1]=score[i];
 }

 printf("%d\n",score[i]);
}


提问者:精慕门7418217 2018-01-12 19:59

个回答

  • 慕前端8373807
    2018-01-23 17:31:50
    已采纳

    //判断语句里面的代码错了,要替换两个元素的位置,需要一个中间变量(外面定义一个int temp),改成 

    if(score[i]>score[i+1])

    { temp=score[i]; score[i]=score[i+1];score[i+1]=temp;

    }
    //这个排序一次是把最大数移动到了最后一个位置,所以最高分应该是arr[9]

    //建议最好外部定义好常量N,例#define N 10,做为数组的长度,这样这道题里面的最高分就是arr[N-1].

  • 万能的小黑666
    2018-01-14 18:34:06

    if(score[i]>score[i+1]) //如果前一个数大于后一个;

     score[i+1]=score[i] //就把后面较小的那个数赋值给前一个;

    以此类推:最小的数最终赋值到了第一个,然后输出;

    剩下四个在执行循环,选出最小的,再输出;

    最后就可以按照有小到大的顺序输出。