濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > C語言數(shù)組添加和刪除元素的實(shí)現(xiàn)

C語言數(shù)組添加和刪除元素的實(shí)現(xiàn)

熱門標(biāo)簽:遼寧銀行智能外呼系統(tǒng) 海南銀行智能外呼系統(tǒng)商家 電銷機(jī)器人違法了嗎 姜堰電銷機(jī)器人 辰溪地圖標(biāo)注 遼寧正規(guī)電銷機(jī)器人 許昌智能電銷機(jī)器人公司 上海浦東騰訊地圖標(biāo)注位置 澳大利亞城市地圖標(biāo)注

數(shù)組不擅長插入(添加)和刪除元素。數(shù)組的優(yōu)點(diǎn)在于它是連續(xù)的,所以查找數(shù)據(jù)速度很快。但這也是它的一個(gè)缺點(diǎn)。正因?yàn)樗沁B續(xù)的,所以當(dāng)插入一個(gè)元素時(shí),插入點(diǎn)后所有的元素全部都要向后移;而刪除一個(gè)元素時(shí),刪除點(diǎn)后所有的元素全部都要向前移。

插入算法

# include stdio.h>
int main(void)
{
  int a[23] = {1, 5, 66, 8, 55, 9, 1, 32, 5, 65, 4, 8, 5, 15, 64, 156, 1564, 15, 1, 8, 9, 7, 215};
  int b[24]; //用來存放插入數(shù)字后的新數(shù)組, 因?yàn)橛植迦肓艘粋€(gè)值, 所以長度為24
  int Index; //插入值的下標(biāo), Index是“下標(biāo)”的英文單詞
  int num; //插入的值
  int i; //循環(huán)變量
  printf("請(qǐng)輸入插入值的下標(biāo):");
  scanf("%d", Index);
  printf("請(qǐng)輸入插入的數(shù)值:");
  scanf("%d", num);
  for (i=0; i24; ++i)
  {
    if (i  Index)
    {
      b[i] = a[i]; /*循環(huán)變量i小于插入值位置Index時(shí), 每一個(gè)元素所放的位置不變*/
    }
    else if (i == Index)
    {  
      b[i] = num; //i等于Index時(shí), 將插入值賦給數(shù)組b
    }
    else
    {
      b[i] = a[i-1]; /*因?yàn)椴迦肓艘粋€(gè)新的元素, 所以插入位置后的每一個(gè)元素所存放的位置都要向后移一位*/
    }
  }
  for (i=0; i24; ++i)
  {
    printf("%d\x20", b[i]);
  }
  printf("\n");
  return 0;
}

輸出結(jié)果是:
請(qǐng)輸入插入值的下標(biāo):10請(qǐng)輸入插入的數(shù)值:22
1 5 66 8 55 9 1 32 5 65 22 4 8 5 15 64 156 1564 15 1 8 9 7 215

刪除算法

# include stdio.h>
int main(void)
{
  int a[23] = {1, 5, 66, 8, 55, 9, 1, 32, 5, 65, 4, 8, 5, 15, 64, 156, 1564, 15, 1, 8, 9, 7, 215};
  int b[22]; /*用來存放刪除數(shù)字后的新數(shù)組, 因?yàn)閯h除了一個(gè)值, 所以長度為22*/
  int Index; //要?jiǎng)h除的值的下標(biāo)
  int i; //循環(huán)變量
  printf("請(qǐng)輸入要?jiǎng)h除的值的下標(biāo):");
  scanf("%d", Index);
  for (i=0; i23; ++i)
  {
    if (i  Index)
    {
      b[i] = a[i]; /*循環(huán)變量i小于插入值位置Index時(shí), 每一個(gè)元素所存放的位置不變*/
    }
    else
    {
      b[i] = a[i+1]; /*刪除值后面的元素都往前移一位, 要?jiǎng)h除的值直接被覆蓋*/
    }
  }
  for (i=0; i22; ++i)
  {
    printf("%d\x20", b[i]); // \x20表示空格
  }
  printf("\n");
  return 0;
}

輸出結(jié)果是:
請(qǐng)輸入要?jiǎng)h除的值的下標(biāo):5
1 5 66 8 55 1 32 5 65 4 8 5 15 64 156 1564 15 1 8 9 7 215

實(shí)例

37, 49, 51, 61。設(shè)計(jì)程序?qū)?shù)組中的數(shù)據(jù)實(shí)現(xiàn)一次刪除及插入操作:

利用getchar()函數(shù)接收鍵盤輸入:
● 當(dāng)輸入字符'D'時(shí),接收鍵盤輸入一個(gè)數(shù)組中存在的整數(shù)n,并對(duì)數(shù)組中存在的該整數(shù)進(jìn)行刪除,要求刪除后的數(shù)組各元素仍按照從小到大的順序排列。
要求:不使用冒泡法或選擇法實(shí)現(xiàn)刪除數(shù)據(jù)后的排序操作。
● 當(dāng)輸入字符'I'時(shí),接收鍵盤輸入一個(gè)數(shù)組中不存在的整數(shù)m,并將該整數(shù)m插入到數(shù)組中,要求插入后的數(shù)組各元素仍按照從小到大的順序排列。
要求:不使用冒泡法或選擇法實(shí)現(xiàn)插入數(shù)據(jù)后的排序操作。

樣例輸入和輸出:
數(shù)組排序后的結(jié)果為:5, 9, 11, 16, 24, 34, 37, 49, 51, 61

請(qǐng)輸入需要進(jìn)行的操作(插入'I',刪除'D'):D
請(qǐng)輸入需要?jiǎng)h除的整數(shù):9
刪除后的數(shù)組為:5, 11, 16, 24, 34, 37, 49, 51, 61

請(qǐng)輸入需要進(jìn)行的操作(插入'I',刪除'D'):I
請(qǐng)輸入需要插入的整數(shù):13
插入后的數(shù)組為:5, 11, 13, 16, 24, 34, 37, 49, 51, 61

#include stdio.h>

int main()
{
 int a[10] = { 5, 9, 11, 16, 24, 34, 37, 49, 51, 61 };
 int i = 0,n=0,k=0;
 char get;
 
 for (i = 0; i  10; i++)
  printf("%3d", a[i]);
 printf("\n");
 printf("請(qǐng)輸入需要進(jìn)行的操作(插入‘I',刪除‘D')\n");
 
 get = getchar();
 getchar();
 
 if (get=='D')
 {
  printf("請(qǐng)輸入要?jiǎng)h除的整數(shù):\n");
  n = getchar(); 
  getchar();
  n -= 48;
  for (i = 0; i  10; i++)
  {
  if (a[i]==n)
  {
   for (; i  10; i++)
   {
    a[i] = a[i + 1];
   }
   a[9] = 0;
   break;
  }
  }
 for (i = 0; i  9; i++)
  printf("%3d", a[i]);
 printf("\n");
 }
 
 printf("請(qǐng)輸入需要進(jìn)行的操作(插入‘I',刪除‘D')\n");
 get = getchar();
 getchar();
 
 if (get='I')
 {
 printf("請(qǐng)輸入要插入的整數(shù):\n");
 scanf_s("%d", n);         //注意陷阱,不能用getchar(),因?yàn)?3其實(shí)是兩個(gè)字符,回車之后,n只吸收了‘1',所以只能用scanf_s().
 for (i = 0; i  10; i++)
 {
  if (a[i]  nn  a[i + 1])
  {
  k = i;
  for (i = 8; i > k; i--)
  {
   a[i+1] = a[i];
  }
  a[k+1] = n;
  break;
  }
 }
 for (i = 0; i  10; i++)
  printf("%3d", a[i]);
 }
 return 0;
}

到此這篇關(guān)于C語言數(shù)組添加和刪除元素的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C語言數(shù)組添加和刪除元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • C語言對(duì)數(shù)組元素進(jìn)行冒泡排序的實(shí)現(xiàn)
  • C語言數(shù)組元素循環(huán)右移問題及解決方法
  • C語言中判斷兩數(shù)組中是否有相同的元素
  • 解決C語言數(shù)組元素循環(huán)右移的問題
  • C語言數(shù)組元素的循環(huán)移位方法
  • C語言找出數(shù)組中的特定元素的算法解析
  • C語言將數(shù)組中元素的數(shù)排序輸出的相關(guān)問題解決
  • C語言輸出旋轉(zhuǎn)后數(shù)組中的最小數(shù)元素的算法原理與實(shí)例

標(biāo)簽:晉城 深圳 威海 西藏 伊春 崇左 撫州 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《C語言數(shù)組添加和刪除元素的實(shí)現(xiàn)》,本文關(guān)鍵詞  語言,數(shù)組,添加,和,刪除,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《C語言數(shù)組添加和刪除元素的實(shí)現(xiàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于C語言數(shù)組添加和刪除元素的實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    鄱阳县| 祁阳县| 靖远县| 庆安县| 伊川县| 西充县| 民县| 临高县| 新安县| 阳谷县| 博湖县| 社会| 南皮县| 梁河县| 辽阳市| 桂平市| 乐亭县| 伊春市| 开远市| 塔河县| 将乐县| 云安县| 松潘县| 大化| 南投县| 玉门市| 靖州| 布拖县| 旺苍县| 宾阳县| 资兴市| 甘孜县| 凌源市| 镇安县| 依安县| 平谷区| 资兴市| 安塞县| 观塘区| 海门市| 黑河市|