|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- 函数3(有序数组插入)
- 题目描述
- 已有一个已排好(从小到大)的n个元素的整形数组,输入一个整数数,要求按原来排序的规律将它插入数组中。
- 输入
- 第一行:n, 第二行,原始数组的n个整数数。第三行,需要插入的整数。
- 输出
- 插入后的n+1个整数。
- 样例输入
- 3
- 1 3 5
- 4
- 9
- 1 7 8 17 23 24 59 62 101
- 50
- 样例输出
- 1 3 4 5
- 1 7 8 17 23 24 50 59 62 101
- 提示
- 注意输出格式:输出的整数之间有1个空格,最后一个整数后面没有空格。
复制代码
我写了这个
- #include<stdio.h>
- void fun(int n,int a[],int k)
- { int t=0;
- for(int i=n;i>=0;i--)
- if(a[i-1]<=k)
- {a[i]=k; break; }
-
- else
- a[i]=a[i-1];
- for(int i=0;i<=n;i++)
- printf("%d ",a[i]);
-
- }
- main()
- {
- int n,a[100],i,k;
- scanf("%d",&n);
-
- for(i=0;i<n;i++)
-
- scanf("%d",&a[i]);
-
- scanf("%d",&k);
-
- fun(n,a,k);
-
- }
复制代码
请问有没有什么神仙大佬怎么让它可以同时运行多次呀,问题一样
本帖最后由 jackz007 于 2021-11-25 21:21 编辑
- #include <stdio.h>
- void insert(int d[] , int n , int x)
- {
- int i , j ;
- for(i = 0 ; i < n && d[i] < x ; i ++) ;
- for(j = 0 ; j < n - i ; j ++) d[n - j] = d[n - 1 - j] ;
- d[i] = x ;
- }
- int main(void)
- {
- int d[5000] , i , n , x ;
- scanf("%d" , & n) ;
- for(i = 0 ; i < n ; i ++) scanf("%d" , & d[i]) ;
- fflush(stdin) ;
- scanf("%d" , & x) ;
- insert(d , n , x) ;
- printf("%d" , d[0]) ;
- for(i = 1 ; i < n + 1 ; i ++) printf(" %d" , d[i]) ;
- printf("\n") ;
- }
复制代码
编译、运行实况:
- D:\00.Excise\C>g++ -o x x.c
- D:\00.Excise\C>x
- 3
- 1 3 5
- 4
- 1 3 4 5
- D:\00.Excise\C>x
- 9
- 1 7 8 17 23 24 59 62 101
- 50
- 1 7 8 17 23 24 50 59 62 101
- D:\00.Excise\C>
复制代码
|
|