C 語言程式使用指標插入陣列元素。


問題

編寫一個 C 程式,在執行時由使用者輸入元素插入陣列,並在插入後將結果顯示在螢幕上。如果插入的元素大於陣列的大小,則需要顯示“無效輸入”。

解決方案

陣列用於在一個名稱下儲存一組公共元素。

陣列操作如下:

  • 插入
  • 刪除
  • 搜尋

演算法

參考一個演算法,使用指標將元素插入陣列。

步驟 1:宣告並讀取元素數量。

步驟 2:在執行時宣告並讀取陣列大小。

步驟 3:輸入陣列元素。

步驟 4:宣告一個指標變數。

步驟 5:在執行時動態分配記憶體。

步驟 6:輸入要插入元素的位置。

步驟 7:在該位置插入新元素,並將右側的元素向右移動一個位置。

示例

陣列大小為:5

陣列元素如下:

1 2 3 4 5

插入新元素:9

在位置:4

輸出如下:

After insertion the array elements are:
1 2 3 9 4 5

示例

以下是使用指標將元素插入陣列的 C 程式:

 即時演示

#include<stdio.h>
#include<stdlib.h>
void insert(int n1, int *a, int len, int ele){
   int i;
   printf("Array elements after insertion is:
");    for(i=0;i<len-1;i++){       printf("%d
",*(a+i));    }    printf("%d
",ele);    for(i=len-1;i<n1;i++){       printf("%d
",*(a+i));    } } int main(){    int *a,n1,i,len,ele;    printf("enter size of array elements:");    scanf("%d",&n1);    a=(int*)malloc(n1*sizeof(int));    printf("enter the elements:
");    for(i=0;i<n1;i++){       scanf("%d",a+i);    }    printf("enter the position where the element need to be insert:
");    scanf("%d",&len);    if(len<=n1){       printf("enter the new element that to be inserted:");       scanf("%d",&ele);       insert(n1,a,len,ele);    } else {       printf("Invalid Input");    }    return 0; }

輸出

執行上述程式時,會產生以下輸出:

enter size of array elements:5
enter the elements:
1
3
5
7
2
enter the position where the element need to be insert:
5
enter the new element that to be inserted:9
Array elements after insertion are:
1
3
5
7
9
2

更新於: 2021年3月26日

6K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.