寫一個函數,用“起泡法”對輸人的10個字符按由小到大順序排列
題目解析:
該題主要是對冒泡排序的理解,外層循環控制排序的趟數,內層循環主要是進行每一趟排序的比較,如果前面的字符大於后面的字符,就進行交換,每做一趟排序,就把一個最大字符排在最后,以及每做一趟排序就需要少比較一個字符。
代碼示例:
#include<stdio.h>
#include<string.h>
void BubbleSort(char str[])
{
int i, j;
char tmp;
int len = strlen(str);
for(i=0; i<len-1; ++i)
{
for(j=0; j<len-i-1; ++j)
{
if(str[j] > str[j+1])
{
tmp = str[j];
str[j] = str[j+1];
str[j+1] = tmp;
}
}
}
}
int main()
{
int i;
char str[11] = {0};
printf("請輸入10個字符:>");
for(i=0; i<10; ++i)
scanf("%c", &str[i]);
BubbleSort(str);
printf("string sorted: %s\n", str);
return 0;
}