1. 程式人生 > >ZZULIOJ.1118: 數列有序

ZZULIOJ.1118: 數列有序

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; }