C語言陣列的增加-刪除--以及經典氣泡排序演算法
阿新 • • 發佈:2018-12-16
雖然是最基本的,但成功靠的是一點一點的積累
#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; }
有不理解的歡迎留言,博主會詳細講解每個步驟