C++设计程序,让用户输入一行句子,并输入一串数字表示单词重新排序的顺序(顺序从0开始),最后按用户设定的顺序来输出一行新的句子。
时间: 2023-06-11 12:09:43 浏览: 105
以下是一个简单的C程序,可以实现用户输入一行句子,同时输入数字,将句子中的单词按照指定的顺序重新排列,并输出新的句子:
```c
#include <stdio.h>
#include <string.h>
#define MAX_WORDS 20
#define MAX_LENGTH 50
void reorder(char words[MAX_WORDS][MAX_LENGTH], int order[], int num_words) {
char temp[MAX_LENGTH];
int i, j;
for (i = 0; i < num_words; i++) {
for (j = i + 1; j < num_words; j++) {
if (order[i] > order[j]) {
strcpy(temp, words[i]);
strcpy(words[i], words[j]);
strcpy(words[j], temp);
int temp_order = order[i];
order[i] = order[j];
order[j] = temp_order;
}
}
}
}
int main() {
char sentence[MAX_WORDS][MAX_LENGTH];
int order[MAX_WORDS];
int num_words = 0;
printf("Enter a sentence: ");
while (scanf("%s", sentence[num_words]) == 1) {
num_words++;
if (num_words >= MAX_WORDS) {
printf("Too many words!\n");
return 1;
}
}
printf("Enter word order: ");
for (int i = 0; i < num_words; i++) {
scanf("%d", &order[i]);
}
reorder(sentence, order, num_words);
printf("Reordered sentence: ");
for (int i = 0; i < num_words; i++) {
printf("%s ", sentence[i]);
}
printf("\n");
return 0;
}
```
这个程序中定义了一个 `reorder` 函数,用于将数组中的单词按照指定的顺序重新排列。然后在 `main` 函数中,首先读取用户输入的句子,存储在一个二维字符数组中。然后读取用户输入的单词顺序,存储在一个整数数组中。最后调用 `reorder` 函数对单词进行重新排序,并输出新的句子。
阅读全文