1. 程式人生 > >C語言陣列的增加-刪除--以及經典氣泡排序演算法

C語言陣列的增加-刪除--以及經典氣泡排序演算法

雖然是最基本的,但成功靠的是一點一點的積累

#include <stdio.h>
#include <stdlib.h>

int main()
{
     int i,j;
     int temp;
     int count = 5;
     int nums[] = {23,5,87,29,9};
     int delete_nums;
     int delete_Index = -1;
     int insert_nums;
     printf("打印出要操作的值:");
     for(i=0;i<count;i++)
     {
         printf("%d\t",nums[i]);
     }
     //進入刪除操作
     printf("\n");
     printf("請輸入你需要刪除的數字:");
     scanf("%d",&delete_nums);
     for(i=0;i<count;i++)
     {
         if(delete_nums == nums[i]){
            delete_Index = i;
            printf("你要刪除的下標是:%d",i+1);
            break;
         }
     }
     if(-1 == delete_Index)
     {
        printf("抱歉,沒有找到你需要刪除的數字!");
     }
     else{
        for(i=delete_Index;i<count;i++){  //注意是從你要刪除的元素開始進行操作
            nums[i]=nums[i+1];
        }
        count--;
     }
     
     
     printf("\n刪除後結果為:\n");
     for(i=0;i<count;i++){
        printf("%d\t",nums[i]);
     }
     printf("\n進行插入操作:\n");
     printf("請輸入你需要插入的值:");
     scanf("%d",&insert_nums);
     nums[count] = insert_nums;
     count++;    //之前count被減1了,這裡吧他加回來
     printf("插入後列印的結果:\n");
     for(i=0;i<count;i++){
        printf("%d\t",nums[i]);
     }
     
     
     printf("\n進行氣泡排序\n");
     for(i=0;i<count-1;i++){     //外層迴圈控制輪數(陣列長度-1) 
        for(j=0;j<count-i-1;j++){  //內層迴圈控制每輪比較的次數(陣列長度-1-i)
            if(nums[j]>nums[j+1]){
                temp = nums[j];
                nums[j]= nums[j+1];
                nums[j+1] = temp;
            }
        }
     }
     printf("升序後結果為:");
     for(i=0;i<count;i++){
        printf("%d\t",nums[i]);
     }

    return 0;
}

有不理解的歡迎留言,博主會詳細講解每個步驟