P165 4.有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int a[11] = { 1,2,3,4,5,60,70,80,90,100 };
int i, j, number = 0, tmp1, tmp2;
//输出原来的数组
for (i = 0; i < 10; i++) {
printf("%5d", a[i]);
}
printf("\n");
printf("请输入要插入的数字:");
scanf("%d", &number);
//比较大小
if (number > a[9]) {
a[10] = number;
}
else {
for (i = 0; i < 10; i++) {
if (a[i] > number) {
tmp1 = a[i];
a[i] = number;
//给number后面的每个元素的下标+1
for (j = i + 1; j < 11; j++) {
tmp2 = a[j];
a[j] = tmp1;
tmp1 = tmp2;
}
break;
}
}
}
//输出重新排序后的数组
printf("重新排序后:\n");
for (i = 0; i < 11; i++) {
printf("%5d", a[i]);
}
return 0;
}
运行结果: