1. <i id="s6b2k"><small id="s6b2k"></small></i>
    <b id="s6b2k"><bdo id="s6b2k"></bdo></b>
  2. <wbr id="s6b2k"></wbr>

    C語言數組添加和刪除元素的實現_應用技巧

    來源:腳本之家  責任編輯:小易  

    數組不擅長插入(添加)和刪除元素。數組的優點在于它是連續的,所以查找數據速度很快。但這也是它的一個缺點。正因為它是連續的,所以當插入一個元素時,插入點后所有的元素全部都要向后移;而刪除一個元素時,刪除點后所有的元素全部都要向前移。

    插入算法

    # 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]; //用來存放插入數字后的新數組, 因為又插入了一個值, 所以長度為24
      int Index; //插入值的下標, Index是“下標”的英文單詞
      int num; //插入的值
      int i; //循環變量
      printf("請輸入插入值的下標:");
      scanf("%d", &Index);
      printf("請輸入插入的數值:");
      scanf("%d", &num);
      for (i=0; i<24; ++i)
      {
        if (i < Index)
        {
          b[i] = a[i]; /*循環變量i小于插入值位置Index時, 每一個元素所放的位置不變*/
        }
        else if (i == Index)
        {  
          b[i] = num; //i等于Index時, 將插入值賦給數組b
        }
        else
        {
          b[i] = a[i-1]; /*因為插入了一個新的元素, 所以插入位置后的每一個元素所存放的位置都要向后移一位*/
        }
      }
      for (i=0; i<24; ++i)
      {
        printf("%d\x20", b[i]);
      }
      printf("\n");
      return 0;
    }
    

    輸出結果是:
    請輸入插入值的下標:10請輸入插入的數值: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]; /*用來存放刪除數字后的新數組, 因為刪除了一個值, 所以長度為22*/
      int Index; //要刪除的值的下標
      int i; //循環變量
      printf("請輸入要刪除的值的下標:");
      scanf("%d", &Index);
      for (i=0; i<23; ++i)
      {
        if (i < Index)
        {
          b[i] = a[i]; /*循環變量i小于插入值位置Index時, 每一個元素所存放的位置不變*/
        }
        else
        {
          b[i] = a[i+1]; /*刪除值后面的元素都往前移一位, 要刪除的值直接被覆蓋*/
        }
      }
      for (i=0; i<22; ++i)
      {
        printf("%d\x20", b[i]); // \x20表示空格
      }
      printf("\n");
      return 0;
    }

    輸出結果是:
    請輸入要刪除的值的下標:5
    1 5 66 8 55 1 32 5 65 4 8 5 15 64 156 1564 15 1 8 9 7 215

    實例

    37, 49, 51, 61。設計程序對數組中的數據實現一次刪除及插入操作:

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

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

    請輸入需要進行的操作(插入'I',刪除'D'):D
    請輸入需要刪除的整數:9
    刪除后的數組為:5, 11, 16, 24, 34, 37, 49, 51, 61

    請輸入需要進行的操作(插入'I',刪除'D'):I
    請輸入需要插入的整數:13
    插入后的數組為: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("請輸入需要進行的操作(插入‘I',刪除‘D')\n");
     
     get = getchar();
     getchar();
     
     if (get=='D')
     {
      printf("請輸入要刪除的整數:\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("請輸入需要進行的操作(插入‘I',刪除‘D')\n");
     get = getchar();
     getchar();
     
     if (get='I')
     {
     printf("請輸入要插入的整數:\n");
     scanf_s("%d", &n);         //注意陷阱,不能用getchar(),因為13其實是兩個字符,回車之后,n只吸收了‘1',所以只能用scanf_s().
     for (i = 0; i < 10; i++)
     {
      if (a[i] < n&&n < 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;
    }
    

    到此這篇關于C語言數組添加和刪除元素的實現的文章就介紹到這了,更多相關C語言數組添加和刪除元素內容請搜索真格學網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持真格學網!

    您可能感興趣的文章:C語言對數組元素進行冒泡排序的實現C語言數組元素循環右移問題及解決方法C語言中判斷兩數組中是否有相同的元素解決C語言數組元素循環右移的問題C語言數組元素的循環移位方法C語言找出數組中的特定元素的算法解析C語言將數組中元素的數排序輸出的相關問題解決C語言輸出旋轉后數組中的最小數元素的算法原理與實例

  3. 本文相關:
  4. cookies 欺騙漏洞的防范方法(vbs+js 實現)
  5. 最簡潔的asp多重查詢的解決方案
  6. asp cookies操作的詳細介紹與實例代碼
  7. asp分頁時計算頁面總數的幾種算法小結
  8. asp中格式化html函數代碼 sdcms加強版
  9. 身份證校驗算法與asp程序
  10. asp + serv-u 實現ftp的代碼
  11. 隨機提取access/sqlserver數據庫中的10條記錄的sql語句
  12. 服務器xmlhttp(server xmlhttp in asp)基礎知識
  13. 在asp里面創建guid
  14. c語言:編程實現在一維數組中查找、插入和刪除一個...
  15. c語言數組元素的刪除與增加。
  16. 急!c語言對數組元素的刪除,添加操作
  17. C語言求完善數組的插入和刪除
  18. c語言數組中一個數的刪除與插入
  19. C語言一維數組的增,刪,改,查的編程例子,要簡單...
  20. C語言 數組 實現刪除一數組中的某指定元素。
  21. C語言 數組。實現刪除一數組中的某指定元素。
  22. C語言的題用函數實現數組數據的增加,刪除,修改,查...
  23. C語言數組的刪除,插入
  24. 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全asp基礎應用技巧數據庫相關asp class類存儲過程小偷/采集木馬相關fso專題首頁asp編程c語言對數組元素進行冒泡排序的實現c語言數組元素循環右移問題及解決方法c語言中判斷兩數組中是否有相同的元素解決c語言數組元素循環右移的問題c語言數組元素的循環移位方法c語言找出數組中的特定元素的算法解析c語言將數組中元素的數排序輸出的相關問題解決c語言輸出旋轉后數組中的最小數元素的算法原理與實例cookies 欺騙漏洞的防范方法(vbs+js 實現)最簡潔的asp多重查詢的解決方案asp cookies操作的詳細介紹與實例代碼asp分頁時計算頁面總數的幾種算法小結asp中格式化html函數代碼 sdcms加強版身份證校驗算法與asp程序asp + serv-u 實現ftp的代碼隨機提取access/sqlserver數據庫中的10條記錄的sql語句服務器xmlhttp(server xmlhttp in asp)基礎知識在asp里面創建guid推薦4款傻瓜型的asp服務器軟件(關于“未指定的錯誤”的問題 的比錯誤類型:provider (0x80004005c#入門教程之listbox控件使用方法utf-8 網頁不顯示+utf-8網頁亂碼asp 日期格式化問題asp中設置session過期時間方法總microsoft jet database engine(sql查詢語句通配符與access模糊查asp獲取url參數的幾種方法分析總asp下利用fso實現文件夾或文件移動改名等網上用的比較多的asp級聯菜單效果代碼asp中文數字驗證碼asp 驗證輸入網址是否有效并可以訪問 與正asp 遞歸調用 已知節點查找根節點的函數15種asp技巧atom_js.asp在asp中使用js的encodeuricomponent方法microsoft jet database engine(0x800040經驗幾則
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.yu113.com All Rights Reserved
    战天txt全集下载