zoukankan      html  css  js  c++  java
  • PAT 1009 说反话

    输入格式:

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

    输出格式:

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

    输入样例:

    Hello World Here I Come

    输出样例:

    Come I Here World Hello
    

     

    结果:

     1 #include <cstdio>
     2 #include <cstring>
     3 
     4 int main(void){
     5     char str[90];
     6     fgets(str,90,stdin);
     7     int len = strlen(str);
     8     int r = 0, h = 0;
     9     char ans[90][90] = {""};
    10     for(int i = 0;i<len; i++){
    11         if(str[i] == '
    '){
    12             
    13         }else if(str[i] != ' '){
    14           ans[r][h++] = str[i];
    15         }
    16         else{
    17             r++;
    18             h = 0;
    19             ans[r][h] = '';
    20         }
    21     }
    22     for(int i = r; i >= 0;i--){
    23         printf("%s",ans[i]);
    24         if(i>0) printf(" ");
    25     }
    26     getchar();
    27     return 0;
    28 }

    备注:

    获得1:此题目最头痛的是对于str[90]的处理,按照教材基本学习要求,提供了gets函数,但是在PAT环境中根本不可以使用,就好像这个函数已经被删除了一样。换用fget(str,90,stdin)进行。但是这个函数在处理的时候与gets有很大的不同。最大的特点是str最后两个字符是 10(换行符),0()。所以对于这个特殊的尾巴需要增加特殊处理。

    获得2:目前从编译结果来看,经常会有warning,比如使用scanf,fget的时候,虽然标准化达到了非常好的要求,但是这些函数的返回值不可以忽略,解决方法是正视返回值,不忽视异常存在的可能。(实际上在PAT中输入是不可能异常的);另一个方法是弃用scanf,用cin代替。无论如何代替,一定要注意的是,cin和scanf不可以同时存在,这样会引起无法预料的结果。

  • 相关阅读:
    第三章 集合与排序 3-2 对表进行分组
    第三章 集合与排序 3-1 对表进行聚合排序
    第二章 基础查询 2-3 逻辑运算符
    第二章 基础查询 2-2 算术运算符和比较运算符
    第二章 基础查询 2-1 SQL语句基础
    第一章 数据库和SQL
    subprocess模块
    hashlib模块
    re
    ConfigParser模块
  • 原文地址:https://www.cnblogs.com/bobyin/p/10350097.html
Copyright © 2011-2022 走看看