zoukankan      html  css  js  c++  java
  • 1009 说反话(类似回文字符串)

                   1009 说反话 (20 分)
     

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

    输入格式:

    测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。

    输出格式:

    每个测试用例的输出占一行,输出倒序后的句子。

    输入样例:

    Hello World Here I Come
    

    输出样例:

    Come I Here World Hello

    思路:取自胡凡的《算法笔记》

     1 #include <stdio.h>
     2 #include <cstring>
     3 int main()
     4 {
     5     char s[266];
     6     gets(s);
     7 
     8     char s2[80][80];
     9     int r = 0, c = 0;
    10 
    11     int len = strlen(s);
    12     for (int i = 0; i <= len; i++)
    13     {
    14         if (s[i] != ' ')
    15             s2[r][c++] = s[i];
    16         else
    17         {
    18             s2[r][c] = '';    //给每个单词后面添加''
    19             r++;
    20             c = 0;
    21         }
    22 
    23     }
    24 
    25     //r是最后一个单词的下标,因为最后一个单词读取的时候并没有使r++;
    26 
    27     for (int i = r; i >= 0; i--)
    28     {
    29         printf("%s", s2[i]);
    30         if (i != 0)
    31             printf(" ");
    32         else
    33             printf("
    ");
    34     }
    35 
    36 
    37     return 0;
    38 }

    法二:

     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     char str[80][80];
     6     int i = 0;
     7     while (scanf("%s", str[i]) != EOF)
     8         i++;
     9 
    10     for (int j = i - 1; j >= 0; j--)
    11     {
    12         printf("%s", str[j]);
    13         if (j == 0)
    14             printf("
    ");
    15         else
    16             printf(" ");
    17     }
    18 
    19     return 0;
    20 }
  • 相关阅读:
    jdk源码剖析三:锁Synchronized
    ASP.NET的session操作方法总结
    C#文件相同性判断
    C#的DataTable操作方法
    C#二进制流的序列化和反序列化
    C#常用的IO操作方法
    C#缓存操作
    CLR中的程序集加载
    Oracle数据库的SQL分页模板
    奇妙的NULL值,你知道多少
  • 原文地址:https://www.cnblogs.com/hi3254014978/p/11255962.html
Copyright © 2011-2022 走看看