本题要求编写程序,读入5个字符串,按由小到大的顺序输出。
输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。
按照以下格式输出排序后的结果:
After sorted:
每行一个字符串
red yellow blue black white
After sorted:
black
blue
red
white
yellow
鸣谢贵州民族大学张玉全老师修正数据!
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include <stdio.h>
#include <string.h>
#define NUM 5
#define Length 80
int main() {
char strings[NUM][Length];
char temp[Length];
// 读入5个字符串
for (int i = 0; i < NUM; i++) {
scanf("%s", strings[i]);
}
// 使用冒泡排序对字符串进行排序
for (int i = 0; i < NUM - 1; i++) {
for (int j = 0; j < NUM - 1 - i; j++) {
if (strcmp(strings[j], strings[j + 1]) > 0) {
// 交换字符串
strcpy(temp, strings[j]);
strcpy(strings[j], strings[j + 1]);
strcpy(strings[j + 1], temp);
}
}
}
// 输出排序后的字符串
printf("After sorted:\n");
for (int i = 0; i < NUM; i++) {
printf("%s\n", strings[i]);
}
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容