用c++语言和字典逆序排序法实现【输入形式】 I am a student 【输出形式】 student am a I
时间: 2023-06-03 14:03:42 浏览: 166
c++实现的字典排序
好的,我可以回答这个问题。以下是用 C 语言和字典逆序排序法实现的代码:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin); // 从标准输入获取字符串
// 去掉字符串末尾的回车符
if (str[strlen(str) - 1] == '\n')
{
str[strlen(str) - 1] = '\0';
}
// 用空格作为分隔符,将字符串分解成单词
char *words[100];
char *ptr = strtok(str, " ");
int i = 0;
while (ptr != NULL)
{
words[i++] = ptr;
ptr = strtok(NULL, " ");
}
int n = i; // 单词数量
// 对单词进行字典逆序排序
for (i = 0; i < n - 1; i++)
{
int max_idx = i;
for (int j = i + 1; j < n; j++)
{
if (strcmp(words[max_idx], words[j]) < 0)
{
max_idx = j;
}
}
if (max_idx != i)
{
char *temp = words[i];
words[i] = words[max_idx];
words[max_idx] = temp;
}
}
// 输出排序后的单词
printf("排序后的单词为:");
for (i = 0; i < n; i++)
{
printf("%s ", words[i]);
}
printf("\n");
return 0;
}
```
输入形式为 "I am a student",输出形式为 "student am a I"。
希望能帮到你!如果还有其他问题,请继续提出。
阅读全文