题目是,用起泡法对输入的十个字符从小到大排序。第一张是步骤,结果是第二张那样
void sort_chars(char chars[], int size)
{
int i, j;
char temp;
// 使用冒泡排序算法
for (i = 0; i < size - 1; i++) {
for (j = 0; j < size - i - 1; j++) {
if (chars[j] > chars[j+1]) {
// 交换相邻的两个字符
temp = chars[j];
chars[j] = chars[j+1];
chars[j+1] = temp;
}
}
}
}
这么改,供参考:
#include <stdio.h>
#include <string.h>
#define N 32
void sort(char[]);
int main()
{
char str[N];
scanf("%s", str);
sort(str);
printf("排序后:\n");
puts(str);
return 0;
}
void sort(char str[])
{
int i, j;
char t;
for (i = 0; str[i + 1]; i++)
{
for (j = 0; str[j + 1]; j++)
if (str[j] > str[j + 1])
{
t = str[j]; str[j] = str[j + 1]; str[j + 1] = t;
}
}
}
字符串的排序,你得是字符串的数组,也就是二维数组,否则只能输入1个字符串