数据结构真难嗄 2022-05-29 10:54 采纳率: 50%
浏览 103
已结题

c语言字符串排序问题

键盘输入三个字符串,编写嵌套函数,对三个字符串进行由小到大排序,并输出排序结果。请问有没有人能帮忙解答一下呢,下面是具体要求
1)在主函数中获取键盘输入三个字符串到 str[3][80]中.
2)将数组名作为参数传递给函数 1,函数 1 的功能是实现排序。
3)在函数 1 中,进行串的两两比较时,将两个串名作为参数传递给函数 2,函数 2 的功能是比较大小,并将小串前置,如 str[0]与 str[1]比较后,str[0]为较小的串。
4)在主函数中按照顺序输出排序结果

  • 写回答

2条回答 默认 最新

  • WaitIKnowYou 2022-05-29 11:45
    关注
    
    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h> 
    #include<string.h> 
    
    
    void swap(char* i, char* index)
    {
        char temp[80];
        strcpy(temp, i);
        strcpy(i, index);
        strcpy(index, temp);
    }
    void sort(char str[][80])
    {
        //简单选择排序 
        int i, j, index;
    
        for (i = 0;i < 3;i++)
        {
            int index = i;
            for (j = i + 1;j < 3;j++)
            {
                if (strcmp(str[i], str[j]) > 0)
                    index = j;
            }
            if (i != index)
                swap(str[i], str[index]);
        }
    
    }
    int main()
    {
        char str[3][80];
        int i, j;
        for (i = 0;i < 2;i++)
        {
            printf("输入字符串:");
            scanf("%s", str[i]);
        }
        sort(str);
        for (i = 0;i < 3;i++)
            printf("%s", str[i]);
        return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月6日
  • 已采纳回答 5月29日
  • 创建了问题 5月29日

悬赏问题

  • ¥15 关于#matlab#的问题:需要 MATLAB 运行程序,对比四个多址通信方式(TDMA,FDMA,CDMA,OFDMA)的抗噪声性能
  • ¥15 有没有复现过PFENet的,如何解决?
  • ¥15 FDMA,OFDMA,TDMA 和 CDMA 系统容量对比仿真
  • ¥15 图神经网络的入侵检测
  • ¥15 工业数据采集技术+存储架构推荐
  • ¥15 GPT-SOVITS如何训练少数民族语言支持合成语音
  • ¥20 树莓派4b使用Camera Module 3时出现the system should be configured for the legacy camera stack问题
  • ¥200 GitHub开源程序配置在VScode调试
  • ¥15 爬虫保存的scv文件0kb
  • ¥20 如何实现基于强化学习的带电作业机械臂的运动规划与控制