冒泡法按從小到大排列數字
阿新 • • 發佈:2018-12-17
冒泡法 請大佬改進一下 我想要給數組裡賦值 從鍵盤輸入 但結束迴圈輸入還是不太好
#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);
}