本题要求编写程序,读入5个字符串,按由小到大的顺序输出。
输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。
按照以下格式输出排序后的结果:
- After sorted:
- 每行一个字符串
red yellow blue black white
- After sorted:
- black
- blue
- red
- white
- yellow
- #include "stdio.h"
- #include "string.h"
- //定义所需常量
- #define MUN_STRING 5
- #define MAX_LENGTH 80
- //冒泡排序函数实现
- void sortString(char string[MUN_STRING][MAX_LENGTH]){
- char temp[MAX_LENGTH];
- for (int i = 0; i < MUN_STRING-1; ++i) {
- for (int j = i+1; j < MUN_STRING; ++j) {
- //字符串比较函数判断大小
- if(strcmp(string[i],string[j]) > 0){
- //字符串复制函数交换字符串内容
- strcpy(temp,string[i]);
- strcpy(string[i],string[j]);
- strcpy(string[j],temp);
- }
- }
- }
- }
- int main(){
- //二维字符串数组
- char string[MUN_STRING][MAX_LENGTH];
- //循环输入
- for (int i = 0; i < MUN_STRING; ++i) {
- scanf("%s",string[i]);
- }
- //调用排序函数
- sortString(string);
- printf("After sorted:\n");
- //循环打印
- for (int i = 0; i < MUN_STRING; ++i) {
- printf("%s\n",string[i]);
- }
- return 0;
- }
以上代码全为本人亲自手敲,可能有一些错误和不足之处,如有更好的方法和建议,欢迎您在评论区友善讨论。