使用指针将一个长度为n的字符串,逆序输出。

#include<iostream>usingnamespacestd;voidmain(){chara[100],*p;inti=0,j;cout<<"Pleaseen... #include<iostream>
using namespace std;
void main()
{ char a[100],*p;
int i=0,j;
cout<<"Please enter a string of n characters"<<endl;
while(getchar()!='\n')
a[i++]=getchar();
for(p=a+i;p>=a;p--)
cout<<*p<<" ";
}
这个是我的程序。运行错误。高手赐教啊~~
展开
 我来答
百度网友42ed74189
推荐于2016-05-30 · TA获得超过416个赞
知道答主
回答量:115
采纳率:0%
帮助的人:0
展开全部
楼主,这是你的程序,问题主要出现在我标示的几行
#include<iostream>
using namespace std;
void main()
{ char a[100],*p;
int i=0,j;
cout<<"Please enter a string of n characters"<<endl;
while(getchar()!='\n') ,
a[i++]=getchar(); //这不对,上面用到了getchar(),这里再用就是取下一个字符了,所以你的程序a数组里面只有一半的字符
for(p=a+i;p>=a;p--) //这里出示的p值应该是a+i-1,因为p指针已经指向了‘\n’
cout<<*p<<" ";
}

正确程序如下:
#include<iostream>
using namespace std;
void main()
{ char a[100],*p;
int i=0,j;
cout<<"Please enter a string of n characters"<<endl;
while((a[i++]=getchar())!='\n')
{
}

for(p=a+i-1;p>=a;p--)
cout<<*p<<" ";
}
gcsy126
2008-09-30
知道答主
回答量:29
采纳率:0%
帮助的人:18.6万
展开全部
#include<iostream>
using namespace std;
void main()
{ char a[100],*p;
int i=0,j;
cout<<"Please enter a string of n characters"<<endl;
while(getchar()!='\n') //错误读到的字符没送到数组a中
a[i++]=getchar(); 、、这次读取的是\n,送到了数组a中;
for(p=a+i;p>=a;p--) p=a+i 越界
cout<<*p<<" "; //输出的是:\n;
}
正确的程序:
#include<iostream>
using namespace std;
void main()
{ char a[100],*p;
int i=0,j=0;
char save='\n';//判断标志
cout<<"Please enter a string of n characters"<<endl;
while(save=='\n')
{
a[i++]=getchar();、、读取要读的字符
save=getchar();//getchar一次只能读一个,\n也能读取,保存到save中
}
for(p=a+i-1;p>=a;p--) 、、p=a+i-1
cout<<*p<<" ";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaojingyun120
2008-09-30 · TA获得超过115个赞
知道答主
回答量:101
采纳率:0%
帮助的人:0
展开全部
#include<iostream>
using namespace std;
void main()
{ char a[100],*p;
int i=0;

cout<<"Please enter a string of n characters"<<endl;
while(cin.peek()!='\n') //peek()预览下一个值
a[i++]=cin.get(); //get()取下一个值
for(p=a+i-1;p>=a;p--)
cout<<*p<<" ";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hubinazrael
2008-09-30 · 超过10用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:41.1万
展开全部
在for循环之前,先将i-1

再把for循环中的p>=a,改为i>=0,p--改为i--

试试运行看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jangojango
2008-09-30 · 超过32用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:75.3万
展开全部
只会C 不会C++ 不过ostream后面要不要.h的?
错的估计是
for(p=a+i;p>=a;p--)
cout<<*p<<" ";

i的值要重新赋0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式