zoukankan      html  css  js  c++  java
  • 单词排序(字符串函数总结)

                                                   问题 D: 单词排序(点击)

                                                                  时间限制: 1 Sec  内存限制: 128 MB
                                                                             提交: 448  解决: 155
                                                                  [提交] [状态] [讨论版] [命题人:admin]

    题目描述

    小红学会了很多英语单词,妈妈为了帮小红加强记忆,拿出纸、笔,把n个单词写在纸上的一行里,让小红看几秒钟后,将这张纸扣在桌子上。妈妈问小红:你能否将这些n个单词按照字典排列的顺序,从小到大写出来?小红按照妈妈的要求写出了答案。现在请你编写程序帮助妈妈检查小红的答案是否正确。注意:所有单词都由小写字母组成,开头字母全都不同,单词两两之间用一个空格分隔。

    输入

    有两行:第一行仅包含一个正整数n(0<n<27)第二行包含n个单词,表示妈妈写出的单词,两两之间用一个空格分隔。
    单个单词长度不超过10。

    输出

    仅有一行:针对妈妈写出的单词,按照字典排列的顺序从小到大排成一行的结果,单词两两之间用一个空格分隔。 

    样例输入

    复制样例数据

    4
    city boy tree student
    

    样例输出

    boy city student tree

    思路:

        开始把这个问题想复杂了没注意到所有单词开头都不同 但正因为想复杂了 让我想到了曾经问过学长的strcmp函数(字典序比较)

    加上冒泡就把这个问题解决了。

    代码:

    #include<stdio.h>
    #include<string.h>           //要加上字符串函数头文件
    int main()
    {
        int n,i,j;
        char a[35][15],temp[15];       //数组别开那麽大 刚才同学就是因为开大了总是错误
        scanf("%d",&n);
        for(i=0;i<n;i++){
            scanf("%s",a[i]);           //使用二维数组会更方便  不然长度确实是不好确定
        }
        for(i=0;i<n-1;i++){
            for(j=0;j<n-i-1;j++){        //冒泡+strcmp函数+strcpy函数的完美组合(还没试结构体排序)
                if(strcmp(a[j],a[j+1])>0){
                    strcpy(temp,a[j]);
                    strcpy(a[j],a[j+1]);      //函数中出现的都是地址 千万不要把整个数组放进去
                    strcpy(a[j+1],temp);
                }
            }
        }
        for(i=0;i<n;i++){
            printf(i==n-1?"%s
    ":"%s ",a[i]);    //输出保证最后一位后面没有空格
        }
        return 0;
    }
    
  • 相关阅读:
    简单对拍
    搜索感想
    L1434滑雪
    记忆化搜索
    L3956棋盘
    USACO 数字三角形
    枚举顺序
    蓝桥计算
    用户态和内核态IO过程
    Mybatis的结果集中的Do要不要有setter
  • 原文地址:https://www.cnblogs.com/ldu-xingjiahui/p/12407478.html
Copyright © 2011-2022 走看看