这一题本来不应该有什么问题的,我很快写出来了,在dev c++里面运行也正常。但是放到pat以后出现了问题。更换了c/c++都不行通过编译。

#include <cstdio>
#include <cstring> int main(){
char str[];
gets(str);
int i=,k=,let[];
while(str[i]!='\0'){
if(str[i]==' '){
let[k++]=i;
}
i++;
}
let[k++]=strlen(str);
for(int i=;i<k;i++){
if(i==){
for(int j=let[i]-;j>=;j--){
printf("%c",str[j]); }
}else for(int j=let[i]-;j>let[i-];j--){
printf("%c",str[j]); }
if(i!=k-)printf(" ");
}
return ;
}

猜想是pat可能是不支持gets这个函数。去查了一圈发现好像是真的,决定换用cin.getline函数来处理。

注意:使用这个函数前面要加上:

#include <iostream>
using namespace std;

尤其是第二句,如果忘了cin前就要加std::,为了偷懒起见,还是一开始就加上比较好。

在改动的过程中,又发现我之前程序的问题:1.看错题了,单词内部不需要倒序;2.单词次序没有调换;

最终版本的代码

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int main(){
char str[];
cin.getline(str,);
int i=,k=,let[];
let[]=-;
while(str[i]!='\0'){
if(str[i]==' '){
let[k++]=i;
}
i++;
}
let[k]=strlen(str);
for(int i=k;i>;i--){
for(int j=let[i-]+;j<let[i];j++){
printf("%c",str[j]);
}
if(i!=)printf(" ");
}
return ;
}

 ps:关于gets为什么不能使用

stackoverflow上的回答:

https://stackoverflow.com/questions/49249067/gets-not-declared-in-the-scope

所以以后能不用gets(),就不要用辽

新知识get

算法笔记刷题4(PAT B1009)的更多相关文章

  1. 算法笔记刷题1(codeup 1934)

    准备6月份的拼题甲级中(本来现在这两天就考试了,但是因为疫情的原因延期了) 刚刚开始按算法笔记刷题,今天是探索codeup的第一天. 一开始并没有把多点测试当回事,直到一错再错,心态爆炸... 附上我 ...

  2. 算法笔记刷题3(codeup 5901)

    今天刷题的速度依旧很慢(小乌龟挥爪.jpg) 我觉得codeup5901中回文串的处理很妙,如果是我自己写的话可能会把数组直接倒过来和原来对比.按照对称规律进行比对的话,工作量可以减少一半. #inc ...

  3. 算法笔记刷题5(PAT A1025)

    第一次上手PAT的甲级题目,瑟瑟发抖(英语不好对着题目愣了半天) 这一题的要点是使用sort函数. 使用sort函数必须使用 #include <algorithm> using name ...

  4. 算法笔记刷题2(codeup 1928)

    又磕了一晚上,多点测试真的很烦 ,完全不知道错哪里,后来发现是我变量名命名不规范导致自己晕了填错了,其实思路还是对的 我觉得书上的做法也还行,但我不太喜欢用二维数组,所以拿以前写的算天数的程序改装了一 ...

  5. 1、学习算法和刷题的框架思维——Go版

    前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...

  6. 有效的括号序列——算法面试刷题4(for google),考察stack

    给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列. 括号必须依照 "()" 顺序表示, & ...

  7. 相似的RGB颜色——算法面试刷题3(for google),考察二分

    在本题中,每个大写字母代表从“0”到“f”的一些十六进制数字. 红绿蓝三元色#AABBCC可以简写为#ABC. 例如,#15c是颜色#1155cc的简写. 现在,假设两种颜色#ABCDEF和#UVWX ...

  8. 回文的范围——算法面试刷题2(for google),考察前缀和

    如果一个正整数的十进制表示(没有前导零)是一个回文字符串(一个前后读取相同的字符串),那么它就是回文.例如,数字5, 77, 363, 4884, 11111, 12121和349943都是回文. 如 ...

  9. 有效单词词广场——算法面试刷题5(for google),考察数学

    给定一个单词序列,检查它是否构成一个有效单词广场.一个有效的单词广场应满足以下条件:对于满足0≤k<max(numRows numColumns)的k,第k行和第k列对应的字符串应该相同,. 给 ...

随机推荐

  1. Excel决定吃什么

    1.Excel填充 在第一列填充1到100 (1)下拉填充 (2)填充——自动填充——序列 2.第二列加权填上自己吃的午饭 3.vloopup函数(列查找) 几乎都使用精确匹配,该项的参数一定要选择为 ...

  2. 条件判断IF

    bash中条件判断使用if语句 千万注意分号 一.单分支条件判断 if  条件 :then 分支1: fi 二.双分支条件判断 if  条件:then 分支1: else 分支2: fi 三.多分支条 ...

  3. CAP定理和BASE理论

    CAP定理和BASE理论 标签(空格分隔): 操作系统 CAP定理 CAP定理: 一个分布式系统最多只能满足一致性 (Consistency), 可用性(Availability)和分区容错性(Par ...

  4. Vue里面提供的三大类钩子及两种函数

    在路由跳转的时候,我们需要一些权限判断或者其他操作.这个时候就需要使用路由的钩子函数. 定义:路由钩子主要是给使用者在路由发生变化时进行一些特殊的处理而定义的函数. 总体来讲vue里面提供了三大类钩子 ...

  5. Linux:启动http服务

    1.安装apache yum install httpd #根据提示,输入Y安装即可成功安装 systemctl start httpd.service #启动apache systemctl sto ...

  6. Linux基础:Day06

    网路安全介绍背景: 早起的互联网 -- 1980年代 ,我们需要共享数据,传输数据:所传输或者共享的数据均为明文: 随着互连网发展,安全称为了国家的一种战略资源: 我们做的,比如编程,运维 -- 手工 ...

  7. MyBatis(九):动态SQL

    本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出一遍就懂!b站搜索狂神说或点击下面链接 https://space.bilibili.com/95256449?spm_id_from=33 ...

  8. Linux基础篇,系统服务(service)的管理

    一.服务是什么? 用白话文说,服务就是"常驻在内存中的进程",用来提供一些系统或网络功能. 二.service和daemon的区别与联系 因为服务(service)本质上来说也是程 ...

  9. Linux系统安装Dos系统(虚拟机里装)

    结合以下两篇优秀的文章就能完成任务. 1.https://www.jb51.net/os/609411.html 2.http://blog.51cto.com/6241809/1687361 所需要 ...

  10. CARS: 华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR-10上仅需单卡半天 | CVPR 2020

    为了优化进化算法在神经网络结构搜索时候选网络训练过长的问题,参考ENAS和NSGA-III,论文提出连续进化结构搜索方法(continuous evolution architecture searc ...