题目内容:有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
个人解法如下:
#define _CRT_SECURE_NO_WARNINGS //防报错
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[100], N, Nummer, i; //本题并没给出原数组的已有数字个数,所以先给数集的元素数量任意赋值,这里赋值100
printf("请输入原数组的已有数字个数:\n");
scanf("%d", &N);
printf("请输入原数组:\n");
for (i = 0; i < N; i++)
scanf("%d", &a[i]);
printf("请输入欲插入的数:\n");
scanf("%d", &Nummer);
if (a[0] > a[1]) //若降序
for (int j = 0; j < N; j++)
if (a[j] <= Nummer)
{
int t1 = a[j];
a[j] = Nummer;
for (int k = j + 1; k < N+1; k++)
int t2 = a[k]; a[k] = t1; t1 = t2;
break;
}
else if (a[0] < a[1]) //若升序
for (int j = 0; j < N; j++)
if (a[j] > Nummer)
{
int t1 = a[j];
a[j] = Nummer;
for (int k = j + 1; k < N+1; k++)
int t2 = a[k]; a[k] = t1; t1 = t2;
break;
}
printf("排序后的数组:\n");
for (i = 0; i < N+1; i++)
printf("%d ", a[i]);
return 0;
}
本人拙作,请大佬们点评。