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

输入格式:

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

输出格式:

每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。

输入样例:

Hello World   Here I Come

输出样例:

Come I Here World Hello

这道题看起来简单,实际上是我太菜了,一开始我想当然想用最简单的方法暴力一下。

错误示例

#include <stdio.h>
main()
{ char ch;int i,k=0,flag=1;char a[2500][250000];for(i=0;;i++){  while((ch=getchar())==' '){ if(ch=='\0'||ch=='\n')break;}a[i][0]=ch;int j=1;while((ch=getchar())!=' '){   if(ch=='\0'||ch=='\n'){flag=0;break;}a[i][j++]=ch;}if(flag==0)break;k++;}printf("%s",a[k]);for(i=k-1;i>=0;i--)printf(" %s",a[i]);
}

结果发现答案没一个对,要不然段错误,要不然格式错误,要不然运行超时。

想了好久,最后————

正确示例:

#include<stdio.h>
#include<string.h>
main()
{   int len,flag=0,count=0;//flag用来标记第一个空格。char a[500001];char *p[250000];//一个指针数组用来指向每个单词的首地址。gets(a);len=strlen(a);for(int i=0;i<len;i++){  if(a[i]==' '){  if(flag==1)//flag==1时为第一个空格,将空格变成'\0',在后面时就可逐个输出单词。{flag=0;//标记后就不用对其余空格进行多余操作。a[i]='\0';}}else{if(flag==0){p[count++]=&a[i];//当不为空格时的第一个字母即为一个新单词的首字母。让p[count++]指向它。flag=1;//标记后就不会将同一个单词的其余字母也被指向。}}}for(int i=count-1;i>0;i--){printf("%s ",p[i]);}if(p[0]!=NULL)//很关键,是一个测试点,当输入为空格时。printf("%s",p[0]);}

上个 图解:

PTA 6-5 说反话-加强版 (C)(通俗易懂还有图解)相关推荐

  1. 7-25 说反话-加强版 (20分)

    7-25 说反话-加强版 (20分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单 ...

  2. 7-15 说反话-加强版 (20 分)#

    7-15 说反话-加强版 (20 分)# 7-15 说反话-加强版 (20 分) 强行解释# 先输出最后的单词,后输入先输的单词?(这不就是队列吗?先入队,后出队.不,咱现在也没学过,咱也不敢问) 那 ...

  3. 7-15 说反话-加强版 (20 分)

    7-15 说反话-加强版 (20 分) PAT 程序设计天梯赛 韩旭051 7-15 说反话-加强版 (20 分) 强行解释 先输出最后的单词,后输入先输的单词?(这不就是队列吗?先入队,后出队.不, ...

  4. PTA-7-32 说反话-加强版(C语言)

    7-32 说反话-加强版 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单词和若干空格 ...

  5. c语言 PTA 基础编程题目集 编程题 7-32 说反话 加强版 的分析

    这里想跟大家谈一谈pta上的一个编程题,说反话的加强版,这道题题目很好理解,可是编程的思路却十分难找,代码更是难以看懂.这里我想跟大家分享一种思路,并做出详细的分析. #include<stdi ...

  6. PTA基础编程题目集-7-32 说反话-加强版

    我不知道我这个到底错在哪里,就sample输出错误,其他的都是对的,但是我怎么都没有看出这个到底错在哪里! #include<iostream> #include<algorithm ...

  7. PTA 7-32 说反话-加强版 (20分)

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母 ...

  8. PTA:说反话-加强版

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母 ...

  9. C++学习之路 | PTA乙级—— 1009 说反话 (20分)(精简)

    1009 说反话 (20分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组 ...

最新文章

  1. 官宣!清华大学要搬迁!
  2. Linux定时任务Crontab执行PHP脚本
  3. H3C LMI协议标准
  4. GitHub图片无法显示
  5. .NET6之MiniAPI(二十二):HttpClient
  6. 简单理解bash和常规操作
  7. python 数据平滑_数据平滑方法的原理和应用
  8. SpringBoot集成Flowable_Jsite办理任务菜单报403
  9. java面向对象上机题库_Java面向对象编程上机-练习题汇总
  10. Qt4_Laying Out Widgets Widgets
  11. RHEL 5下配置Hadoop集群:java.net.NoRouteToHostException: No route to host问题的解决
  12. JOPL的配置文件Bug
  13. Linux下通过WebShell反弹Shell的技巧
  14. SQL--存储过程+触发器 对比!
  15. 项目如何开始:怎样和客户谈需求(转)
  16. Oracle 11g下载及安装
  17. [亲测]Oracle数据库约束
  18. 双电机智能小车装配教程(海灵智电)
  19. Tableau基础 | 维度、度量、蓝色、绿色
  20. Python入门:微博注销不了?python一键清空微博文章内容

热门文章

  1. mac远程登录控制linux,Mac下远程控制Linux
  2. Buildroot编译树莓派教程
  3. 《动手学》:循环神经网络基础 youthAI
  4. (转)每日语录——2010/04/09网络经典语录(生活/IT与互联网/思想/@/娱乐)
  5. Ubuntu18.04-安装安装glog
  6. java计算机毕业设计货币博物馆展品管理系统源程序+mysql+系统+lw文档+远程调试
  7. python 字符串 包含 且不包含_正则表达式:匹配不包含某些字符和不包含某些字符串的写法...
  8. 基于Blinker物联网+Esp8266的燃气灶温度与燃气残留浓度监控装置的设计与实现(完)
  9. HDU 3498 whosyourdaddy DLX重复覆盖
  10. python用来做什么好_Python可以被用来做哪些神奇好玩的事情