写一个函数,用“起泡法”对输入的10个字符按由小到大顺序排列c语言
时间: 2024-11-24 21:23:41 浏览: 20
C++经典例题
在C语言中,你可以使用冒泡排序算法来实现一个函数,对10个字符数组按照升序排列。下面是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
void bubble_sort(char arr[], int n) {
int i, j;
char temp;
for (i = 0; i < n - 1; i++) { // 由于字符串比较默认字典序,所以n-1次遍历就足够了
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp; // 字符串交换操作,这里直接替换字符即可
}
}
}
}
int main() {
char input[11]; // 为了存储10个字符及终止符'\0'
printf("Enter 10 characters: ");
fgets(input, sizeof(input), stdin); // 输入一行字符
// 移除fgets末尾的换行符
size_t len = strlen(input);
if (input[len - 1] == '\n') {
input[len - 1] = '\0';
}
bubble_sort(input, len - 1); // 排序,注意len - 1是因为数组结尾的'\0'不算数
printf("Sorted characters: %s\n", input);
return 0;
}
```
在这个示例中,`bubble_sort`函数接收一个字符数组和它的长度,然后通过嵌套循环和字符比较来调整数组元素的位置,实现排序。
阅读全文