回覆列表
  • 1 # 使用者2953035810118

    方法為:輸入一個數據x,將陣列中的資料與x逐一比較,如果大於x,記錄下資料的下標,然後此資料下標和其後的資料的下標都加一,相當於都向後挪一位,然後將x賦值給陣列的那個下標。

    #include

    int main()

    int i, j, k, x, a[11] =(3, 6, 7, 9, 12, 14, 15, 27, 29, 31) ;

    printf("插入前陣列的資料是:") ;

    for(i=0;i

    printf("%4d",a[i] ) ;

    printf("\n") ;

    printf("請輸入要插入的資料:") ;

    scanf("%d",&x) ;

    for(i=0;i

    if(a[i]>x)

    break;

    for(j=9; j>=i; j--)

    aLj+1] =aLj] ;

    a[i]=x;

    printf("插入後陣列的資料是:") ;

    for(i=0; i

    printf("%4d",[i] ) ;

    return 0;

    擴充套件資料:

    陣列的使用規則:

    1.可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。

    2.只能給元素逐個賦值,不能給陣列整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;(請注意:在C、C#語言中是這樣,但並非在所有涉及陣列的地方都這樣,資料庫是從1開始。)

    3.如不給可初始化的陣列賦初值,則全部元素均為0值。

    4.如給全部元素賦值,則在陣列說明中, 可以不給出陣列元素的個數。例如:static int a[5]={1,2,3,4,5};可寫為:static int a[]={1,2,3,4,5};動態賦值可以在程式執行過程中,對陣列作動態賦值。這時可用迴圈語句配合scanf函式逐個對陣列元素賦值。

    參考資料:

  • 中秋節和大豐收的關聯?
  • 姑娘遠嫁後,你現在後悔了嗎?