C++ 数组中插入一个数 从小到大小排序

要求输入:数组包含的数字个数,要插入的数,以及数组中包含的数。输出排序后的结果,可以循环输入多组数据。

#include <stdio.h>

#define MAX_INPUT_NUMBER 50

void printf_arr(int *arr, int cnt)
{
int i;

for (i = 0; i < cnt; i++) {
printf("%d ", arr[i]);
}
printf("\r\n");
}

void sort(int *arr, int cnt)
{
int i, j;
int tmp;

/* 冒泡排序 */
for (i = 0; i < cnt; i++) {
for (j = 0; j < cnt - 1; j++) {
if (arr[j] > arr[j + 1]) {
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}

int main (void)
{
int arr[MAX_INPUT_NUMBER];
int cnt;
int i;

while (1) {
printf("input the array number count:");
if (!scanf("%d", &cnt)) {
break;
}
if (cnt < 0 || cnt >= MAX_INPUT_NUMBER - 1) {
printf("the number count must less than %d.\r\n", MAX_INPUT_NUMBER);
continue;
}
for (i = 0; i < cnt; i++) {
scanf("%d", &arr[i]);
}
sort(arr, cnt);
printf("the arr you input is:\r\n");
printf_arr(arr, cnt);

printf("pls input the number you want to insert:");
scanf("%d", &arr[cnt++]);

sort(arr, cnt);
printf("the arr after sort is:\r\n");
printf_arr(arr, cnt);

}
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答