解题思路:
输入字符串,逆序输出;
用栈思路(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]);
}

这个可以。

点赞(42)
 

0.0分

9 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 20 条评论

我有个喵喵酱 6年前 回复TA
@ThebestboY 因为最后一个是'\0',如果i不减去'\0'则会额外输出一个空格
年华正好 6年前 回复TA
@cpython3 @smartZhou 打扰啦
cpython3 6年前 回复TA
@cpython3 @987456321 好的哈。
年华正好 6年前 回复TA
@cpython3 没事,我打错啦
cpython3 6年前 回复TA
@cpython3 @987456321 ?
年华正好 6年前 回复TA
#include<iostream>
#include<string.h>
#include<cstdio>
using namespace std;
int main()
{
    int m;
    char a[1000];
    gets(a);
    m=strlen(a);
    while(m--)
        cout<<a[m];
    return 0;
}
年华正好 6年前 回复TA
@cpython3 #include<iostream>
optet 6年前 回复TA
@ThebestboY 因为最后输出的是a[0]
ThebestboY 6年前 回复TA
i=strlen(a)-1 这为什么要-1啊
cpython3 6年前 回复TA
//如果用c++应该这样
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() 
{
    string str;           //Declare a string 
    getline(cin,str);  //Input a line
    reverse(str.begin(),str.end()); //make the string reverse
    cout<<str;                             //Output
    return 0;
}