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

来源:6-12 综合练习

精慕门7418217

2018-01-12 19:59

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]);
}


写回答 关注

2回答

  • 慕前端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].

    精慕门741...

    非常感谢!

    2018-02-08 21:17:16

    共 1 条回复 >

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

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

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

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

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

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

    精慕门741...

    score[i]最多表达score[8],可是它如果在最后一个数最大它还是可以输出出来

    2018-01-14 18:56:21

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926024 学习 · 20793 问题

查看课程

相似问题