刚看了一个题解,直接按顺序输出了序列,因为牛客直接看答案,所以这个想法挺不错的。 下来分享一下我的做法啊:
#include<stdio.h>
int main()
{
int n, arr[100];
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", arr + i);
}
int num;
scanf("%d", &num);
int arr2[100];//建一个新数组,存放有序数列
int j = 0;//新数组的下标
for (int i = 0; i < n; i++)
{
if (arr[i] < num)
{
arr2[i] = arr[i];//如果arr[i]<num的话,arr2的前面都是arr数组的元素值
j++;//arr2下标+1
}
else
{
break;
}
}
arr2[j] = num;//将num写入arr2中,此时num以前都是小于num得数
j++;
//从j开始存储比num的数进入数组arr2中
for (int i = j; i < n+1; i++)
{
arr2[i] = arr[i-1];
}
//打印
for (int i = 0; i < n+1; i++)
{
printf("%d ", arr2[i]);
}
}