原题链接:字符逆序
解题思路:
输入字符串,逆序输出;
用栈思路(c++)自己运行可以,提交时间超限,别提交;
#include<stack> #include<iostream> using namespace std; int main() { stack<char> s; char c; while((c=getchar())&&c!='\n') { s.push(c); } while(s.empty()!=true) { cout<<s.top(); s.pop(); } return 0; }
注意事项:
这样写运行没错,但是提交提示指针越界:(知识不够无法理解)
#include<stdio.h> #include<string.h> int main() { char a[102],c; int j=0; while((a[j]=getchar())&&a[j]!='\n') j++; a[j]='\0'; for(int i=strlen(a)-1;i>=0;i--) printf("%c",a[i]); return 0; }
测试时,这里strlen(a)后加上-1,1,2...(codeblocks)等都能有正确结果,匪夷所思,但提交越界;
下面这样写提交正确,但是codeblocks提示:gets为危险函数,不应该被使用:
#include<stdio.h> #include<string.h> int main() { char a[100]; gets(a); for(int i=strlen(a)-1 ;i>=0;i--) putchar(a[i]); }
参考代码:
#include<stdio.h> #include<string.h> int main() { char a[100]; gets(a); for(int i=strlen(a)-1 ;i>=0;i--) putchar(a[i]); }
这个可以。
0.0分
9 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复