从键盘输入一个字符串,用选择法对该字符串中的字符由小到大进行排序,并输出结果。 #include<stdio.h> #include<string.h> /*********Begin*********/ #define n 100 /*********End**********/ int main(void) { /*********Begin*********/ char a[n]; int i,j,x; char min,temp; gets(a); x=strlen (a); for(i=0;i<=x-2;i++) { for(j=i+1;j<x;j++) { if (a[j]<a[i]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } for(i=0;i<=x-1;i++) printf("%c",a[i]); } /*********End**********/ return 0; }
时间: 2023-06-29 22:15:51 浏览: 40
这道题是一个字符串排序的问题,可以使用选择排序来解决。选择排序的基本思想是每一次从剩余的元素中选择一个最小的元素,然后将它与剩余的元素中的第一个元素交换位置。重复这个过程,直到所有元素都有序。
下面是相应的代码实现:
```c
#include<stdio.h>
#include<string.h>
#define n 100
int main(void) {
char a[n];
int i, j, x;
char min, temp;
gets(a);
x = strlen(a);
for (i = 0; i < x - 1; i++) {
min = a[i];
for (j = i + 1; j < x; j++) {
if (a[j] < min) {
min = a[j];
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
printf("排序后的字符串为:");
for (i = 0; i < x; i++) {
printf("%c", a[i]);
}
return 0;
}
```
你可以尝试输入一些测试数据,看看是否能够正确地输出排序后的字符串。
相关问题
c语言从键盘输入一个字符串,用选择法对该字符串中的字符由大到小进行排序并输出结果
下面是一个用选择法对字符串中字符进行排序的C语言程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 定义字符串最大长度
int main() {
char str[MAX_LEN]; // 存储输入的字符串
int len, i, j, temp;
printf("请输入一个字符串:");
fgets(str, MAX_LEN, stdin); // 从键盘输入字符串
len = strlen(str);
// 选择排序
for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; j++) {
if (str[i] < str[j]) { // 如果前面的字符比后面的字符小,就交换它们的位置
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
printf("排序后的字符串为:%s", str);
return 0;
}
```
这个程序首先定义了一个字符串数组 `str` 来存储输入的字符串,以及一个常量 `MAX_LEN` 来表示字符串的最大长度。然后使用 `fgets()` 函数从键盘输入字符串,并使用 `strlen()` 函数获取字符串长度。
接着使用选择排序算法对字符串中的字符进行排序,最后输出排序结果。
需要注意的是,在使用 `fgets()` 函数输入字符串时,会把回车符 `\n` 也读入到字符串中。因此在输出排序后的字符串时,需要用 `%s` 格式字符串来忽略掉回车符。
从键盘输入一个字符串,用选择法对该字符串中的字符由小到大进行排序,并输出结果。v
好的,以下是实现该功能的 C++ 代码:
```
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
cout << "请输入一个字符串:" << endl;
getline(cin, str);
int len = str.length();
for (int i = 0; i < len - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < len; j++) {
if (str[j] < str[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
swap(str[i], str[minIndex]);
}
}
cout << "排序后的字符串为:" << str << endl;
return 0;
}
```
使用选择法对字符串中的字符进行排序的基本思路是,每次在未排序的字符中选取一个最小的字符,将其放到已排序字符的末尾。以上代码中,我使用了双重循环来实现该功能。第一个循环用于遍历未排序的字符,第二个循环用于找出未排序字符中的最小字符,并将其与已排序字符的末尾交换位置。最终输出排序后的字符串即可。
相关推荐
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.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)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)