为了账号安全,请及时绑定邮箱和手机立即绑定

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

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 回答

//判断语句里面的代码错了,要替换两个元素的位置,需要一个中间变量(外面定义一个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].

0 回复 有任何疑惑可以回复我~
#1

精慕门7418217 提问者

非常感谢!
2018-02-08 回复 有任何疑惑可以回复我~

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

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

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

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

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

0 回复 有任何疑惑可以回复我~
#1

精慕门7418217 提问者

score[i]最多表达score[8],可是它如果在最后一个数最大它还是可以输出出来
2018-01-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信