如题所述
以下是用C语言编写一个实现单词按字母顺序升序排列的程序:
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 50 // 单词最大长度
int main() {
int n, i, j;
char words[100][MAX_LENGTH];
printf("请输入单词个数n(n>=2):\n");
scanf("%d", &n);
// 输入n个单词
for(i = 0; i < n; i++) {
printf("请输入第%d个单词:\n", i+1);
scanf("%s", words[i]);
}
// 选择排序,按字母顺序升序排列
char tmp[MAX_LENGTH];
for(i = 0; i < n-1; i++) {
for(j = i+1; j < n; j++) {
if(strcmp(words[i], words[j]) > 0) {
strcpy(tmp, words[i]);
strcpy(words[i], words[j]);
strcpy(words[j], tmp);
}
}
}
// 输出排序后的单词列表
printf("单词按字母顺序升序排列为:\n");
for(i = 0; i < n; i++) {
printf("%s\n", words[i]);
}
return 0;
}
上面的程序中,利用了选择排序算法来进行单词排序,具体就是将每个单词与其它单词比较大小,如果需要交换位置,则使用strcpy函数进行值的交换。
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 50 // 单词最大长度
int main() {
int n, i, j;
char words[100][MAX_LENGTH];
printf("请输入单词个数n(n>=2):\n");
scanf("%d", &n);
// 输入n个单词
for(i = 0; i < n; i++) {
printf("请输入第%d个单词:\n", i+1);
scanf("%s", words[i]);
}
// 选择排序,按字母顺序升序排列
char tmp[MAX_LENGTH];
for(i = 0; i < n-1; i++) {
for(j = i+1; j < n; j++) {
if(strcmp(words[i], words[j]) > 0) {
strcpy(tmp, words[i]);
strcpy(words[i], words[j]);
strcpy(words[j], tmp);
}
}
}
// 输出排序后的单词列表
printf("单词按字母顺序升序排列为:\n");
for(i = 0; i < n; i++) {
printf("%s\n", words[i]);
}
return 0;
}
上面的程序中,利用了选择排序算法来进行单词排序,具体就是将每个单词与其它单词比较大小,如果需要交换位置,则使用strcpy函数进行值的交换。
温馨提示:答案为网友推荐,仅供参考