解题思路:
可以想象成教室里面有一列,按照高矮顺序排位置,已经排列好了,突然有一个新同学加入,然后我们要把他按照高矮顺序对他进行排座才不会影响其他同学。我们需要加一个座位在最后。然后最高的坐最后然后次高的依次往后坐,只有后面的同学留出位置这样新来的同学才有位置坐下。
注意事项:
参考代码:
#include<stdio.h>
int main() {
int a[10]; //定义一个长度为10的数组来存放元素
int b; //定义我们需要插入的数;
for (int i = 0;i < 9;i++) {
scanf("%d", &a[i]); //通过循环依次为数组中的元素赋值
}
scanf("%d", &b); //输入我们需要插入的数
for (int i = 0;i < 9;i++) { //现在该数组中只有9个元素。
if (a[i] > b) { //将我们输入的这个数依次与排列好的数组中的元素进行比较,当输入的这个数大于数组中的某一个元素时,我们就将输入的数插入到比它大的元素的那个位置,而被占了位置的元素就只能占下一个元素的位置,依次重复直到最后一个元素
for (int j = 9;j > i;j--) {
a[j] = a[j - 1]; //因为有元素插入的话从插入点开始,元素依次退一位。最后一个位置存放倒数第二个元素位置,倒数第二个元素位置存放倒数第三位置,直到到被插入的元素占的那个元素位置
}
a[i] = b; //最后将输入的元素插入数组中
break; //后面就不必要循环了,因为本身这个数组就是已经排序过的。
}
else {
a[9] = b; //如果数组中没有比插入的这个数大的,那么就直接将这个数放最后面。
}
}
for (int i = 0;i < 10;i++) {
printf("%d ", a[i]);
}
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题12.6 (C语言代码)浏览:816 |
C二级辅导-计负均正 (C语言代码)浏览:698 |
C语言训练-大、小写问题 (C语言代码)浏览:2421 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:668 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:613 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:782 |
wu-理财计划 (C++代码)浏览:907 |
WU-输入输出格式练习 (C++代码)浏览:1133 |
WU-整数平均值 (C++代码)浏览:1307 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:574 |