#include<stdio.h>
int* InsertNum(int *arr, int num, int arrLenght)
{
int *b = new int[arrLenght + 1];
bool isDesc = true;
for (size_t i = 0; i < arrLenght - 1; i++) //判断是否为降序
{
if (arr[i] < arr[i + 1])
{
isDesc = false;
break;
}
}
if (isDesc)
{
int j = 0;
for (size_t i = 0; i < arrLenght; i++)
{
if (arr[i] <= num)
{
b[j++] = num;
b[j++] = arr[i];
num = arr[arrLenght-1] - 1;
}
else
{
b[j++] = arr[i];
}
}
}
else
{
int j = 0;
for (size_t i = 0; i < arrLenght; i++)
{
if (arr[i] >= num)
{
b[j++] = num;
b[j++] = arr[i];
num = arr[arrLenght-1] + 1;
}
else
{
b[j++] = arr[i];
}
}
}
return b;
}
void main()
{
//int a[] = { 1, 2, 3, 4, 5, 6 };
int a[] = { 6,5,4,3,2,1 };
int num;
scanf("%d", &num);
int *b = InsertNum(a, num, 6);
printf("result:\n");
for (size_t i = 0; i < 7; i++)
{
printf("%4d", b[i]);
printf("\n");
}
delete[] b;
}
这样吧。不管是升序还是降序,都可以按原来规则排列