题解 | #有序序列插入一个整数#
有序序列插入一个整数
https://www.nowcoder.com/practice/444e87f938464906a1649cff236b102b
#include <stdio.h> #include <string.h> void swap(int*a,int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; } int main() { int n,i; scanf("%d",&n); int arr[n+1]; for(int i=0;i<n+1;i++) { scanf("%d",&arr[i]); } int num = arr[n]; i = n-1; while(arr[i]>num&&i>=0) { arr[i+1]=arr[i]; i--; } arr[i+1] = num; for(i=0;i<n+1;i++) { printf("%d ",arr[i]); } }
就是一个简单的数组插入,感觉更简单的方法是读入之后,直接用for输出比arr[n]小的数,并在遇到第一个比arr[n]大的数时break,然后输出arr[n],最后输出剩余的数