ZZULIOJ.1118: 數列有序
阿新 • • 發佈:2018-11-19
1118: 數列有序
題目描述
一個非遞減有序的整型陣列有n個元素,給定一個整數num,將num插入該序列的適當位置,使序列仍保持非遞減有序。
要求定義一個函式insert(),將整數num插入在陣列a的適當位置上,函式原型如下:
int insert(int a[], int n, int num);
另外函式仍然呼叫以前定義過的函式PrintArr()輸出陣列所有元素。
輸入
輸入有三行。第一行是一個正整數n,n<=1000。第二行是n個整數,第三行是待插入整數num。
輸出
輸出非遞減有序的n+1個整數,資料之間用空格隔開。輸出佔一行。
樣例輸入
5
1 2 4 5 6
3
樣例輸出
1 2 3 4 5 6
提示
元素之間有空格,最後一個元素後面沒有空格。
#include<stdio.h>
int insert(int a[],int n,int num)
{
int i,t,k;
for(i=n-1;i>=0;i--)
{
if(a[i]>num)
a[i+1]=a[i];
else
break;
}
a[i+1]=num;
n++;
return n;
}
void PrintArr(int a[],int n) /*輸出陣列a的前n個元素*/
{
int i;
for(i=0;i<n;i++)
{
if(i==0)
printf("%d",a[i]);
else
printf(" %d",a[i]);
}
}
int main()
{
int n,a[1001],num,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&num) ;
insert(a,n,num);
PrintArr(a,n+1);
return 0;
}