Little fool 2021-09-13 17:29 采纳率: 57.1%
浏览 36
已采纳

将多个字符串按字母顺序由小到大的输出


#include <stdio.h>
#include <string.h>


int main() 
{
    char sort(char* name[], int n);
    char print(char* name[], int n);
    char* name[] = { "Follow me","BASIC","Great Wall","FORTRAN","Computer design" };
    int n = 5;
    sort(name, n);
    print(name, n);


    
    
    
    
    
    
    
    
    
    
    
    return 0;

}

char sort(char* name[], int n)
{
    char* temp;
    int i, j,k;
    for (i = 0; i < n - 1; i++)
    {
        k = i;

        for (j = i + 1; j < n; j++)
        {
            if (strcmp(name[k], name[j]) > 0) k = j;
        }
        if (k != i)
        {
            temp = name[i]; name[i] = name[k]; name[k] = temp;

        }

    }
    return 0;

}

char print(char* name[], int n)
{
    int i;
    for (i = 0; i < n; i++)
    {
        printf_s("%s\n", name[i]);

    }
    return 0;

}

  • 写回答

1条回答 默认 最新

  • baidu_30233079 2021-09-13 17:35
    关注

    不知道你要怎么排序,但strcmp是不能这样用的strcmp(name[k], name[j]),strcmp是比较字符串的,你比较的是两个字符,可以直接比大小的 if(name[k] >name[j])

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月5日
  • 创建了问题 9月13日

悬赏问题

  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi