1. 程式人生 > >冒泡法按從小到大排列數字

冒泡法按從小到大排列數字

冒泡法 請大佬改進一下 我想要給數組裡賦值 從鍵盤輸入 但結束迴圈輸入還是不太好

#include<stdio.h>
int main()
{
int a,b,c,d,e,f,k;
int num[20];
k=0;
for(e=0;;e++){
scanf("%d",&num[e]);       //迴圈輸入值進入num[]
if(getchar()=='\x20'){
continue;
}else if(getchar()=='\n'){     //判斷數字 如果是空格就在此迴圈輸入 如果回車遍結束迴圈
break;
}
}
//冒泡法  假如有n個數字只需要比較1+2+3+……n-1次
for(a=1;a<=e;a++){ for(b=0;b<=e-a;b++){ k++; if(num[b]>num[b+1]){ c=num[b]; num[b]=num[b+1]; //若前者大於後者則交換兩者位置 num[b+1]=c; } } } for(d=0;d<=e;d++){ printf("%d ",num[d]); //按從小到大輸出 } printf("共比較了%d次",k); }