C语言学习记录之向一个已排序好的数组中插入一个数重新进行排序
int main() {
int arr[11] = { 1,3,5,7,9,11,13,15,17,19 };
int num;
scanf("%d", &num);
printf("初始序列:");
for (int i = 0;i < 10;i++) {
printf("%5d", arr[i]);
}
printf("\n");
if (num > arr[9]) {
arr[10] = num;
}
else {
for (int i = 0;i < 8;i++) {
if ((arr[i]<num && arr[i + 1]>num) || arr[i]==num) {
printf("i = %d\n", i);
for (int j = 10;j > i+1;j--) {
arr[j] = arr[j - 1];
}
arr[i+1] = num;
break;
}
}
}
printf("改后序列:");
for (int i = 0; i < sizeof(arr) / sizeof(int);i++) {
printf("%5d", arr[i]);
}
return 0;
}
测试结果(输入不同的数): 输入相同的数:
|