回覆列表
  • 1 # 使用者1062846289535

    #include<stdio.h>

    void main(){

    /*輸出陣列各元素*/

    int i,key,loc;

    int a[10]={1,3,6,9,10,15,16,22,30};

    for(i=0;i<9;i++){

    printf("%d",a<i>);

    }

    /*尋找插入位置*/

    printf("\n\nPlease intput key:");

    scanf("%d",&key);

    loc=0;

    for(i=0;i<9;i++){

    if(a<i>>=key)break;

    }

    loc=i;

    /*逆序向後移動每一個元素,然後插入新元素*/

    for(i=8;i>=loc;i--){

    a[i+1]=a<i>;//

    }

    a[loc]=key;

    /*輸出新陣列各元素*/

    printf("\nNew array is-----\n");

    for(i=0;i<10;i++){//插入一個元素,組數長度增1

    printf("%d",a<i>);

    }

    printf("\n");

    }

    輸入12,輸出結果如下:

    總結:一組陣列,直到找到大於或等於輸入數的時候,找到插入數的下標,a[i+1]=a<i>意思是將a<i>的值給a[i+1],往後移一個(插入一個數,後面元素依次往後移動一個)

    方法二、

    #include<stdio.h>

    void main(){

    int data,temp,k;

    static int a[9]={-10,2,4,8,10,15,25,50};

    printf("\nEnter a data:");

    scanf("%d",&data);

    for(k=8;k>=1;k--){

    if(a[k-1]>data)//逆序遍歷陣列元素,陣列元素大於data,該元素就向後移動一位

    {

    a[k]=a[k-1];

    }else{

    a[k]=data;//陣列元素小於data,把data放到該元素後面

    break;

    }

    }

    for(k=0;k<9;k++){

    printf("%7d",a[k]);

    }

    }

    兩種其實差不多,但是第二種程式碼量小。

    擴充套件資料:

    include用法:

    #include命令預處理命令的一種,預處理命令可以將別的原始碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程式程式碼;可以定義類似識別符號功能的宏,在編譯時,預處理器會用別的文字取代該宏。

    插入標頭檔案的內容

    #include命令告訴預處理器將指定標頭檔案的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入標頭檔案:

    1、#include<檔名>

    2、#include"檔名"

    如果需要包含標準庫標頭檔案或者實現版本所提供的標頭檔案,應該使用第一種格式。如下例所示:

    #include<math.h>//一些數學函式的原型,以及相關的型別和宏

    如果需要包含針對程式所開發的原始檔,則應該使用第二種格式。

  • 中秋節和大豐收的關聯?
  • 對魚坐壁的玉墜是什麼意思?