输入一个数据,将它进行排序,并且在排好序的基础上,按原来排序的规律插入数组
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int arr[50] = { 0 };
printf("请输入一个数组:\n");
int i = 0;
int c = 0;
while ((scanf("%d", &arr[i]) == 1) && i < 50)
{
if (arr[i] == 0)
{
break;
}
i++;
}
c = i;
printf("c=%d \n",c);
int j = 0;
printf("打印输入的数据:");
for (j = 0; j <= c; j++)
{
printf("%d ",arr[j]);
}
printf("\n");
c = i;
int k = 0;
printf("打印排序后的数据:");
for (j = 0; j <= c; j++)
{
int tmp = 0;
for (k = j; k < c; k++)
{
if (arr[j] > arr[k + 1])
{
tmp = arr[j];
arr[j] = arr[k + 1];
arr[k + 1] = tmp;
}
}
}
for (j = 0; j <= c; j++)
{
printf("%d ",arr[j]);
}
printf("\n");
printf("请输入需要插入的数字:");
int a = 0;
c = i;
scanf("%d", &a);
while ((a < arr[c]) && c >= 0)
{
arr[c + 1] = arr[c];
c--;
}
arr[c + 1] = a;
printf("输出插入后的数据:");
for (j = 0; j < i + 2; j++)
{
printf("%d ",arr[j]);
}
printf("\n");
return 0;
}
输出结果: