为什么上面这代码没有排序成功
时间: 2024-02-06 15:12:47 浏览: 26
这段代码实现了冒泡排序算法,但是在交换两个字符时使用了错误的数据类型。具体来说,代码将字符存储在 int 类型的变量 b 中,导致交换时只交换了字符的 ASCII 码值,而没有真正交换字符本身。因此,代码没有成功实现排序功能。
要修复这个问题,可以将变量 b 的类型改为 char,这样就可以正确地交换字符了。修复后的代码如下所示:
```
#include <stdio.h>
#include <string.h>
int main() {
char s1[60], s2[20], s3[60];
int i, j, a;
gets(s1);
gets(s2);
strcat(s1, s2);
printf("%s\n", s1);
for (i = 0; 1; i++) {
s3[i] = s1[i];
if (s1[i] == '\0')
break;
}
a = strlen(s1);
printf("%d\n", a);
for (i = 0; i < a - 1; i++) {
for (j = i + 1; j < a; j++) {
if (s3[i] > s3[j]) {
char b = s3[j];
s3[j] = s3[i];
s3[i] = b;
}
}
}
puts(s3);
puts(s1);
return 0;
}
```
这样就可以正确地对 s3 进行排序了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)