
使用指针将一个长度为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<<" ";
}
这个是我的程序。运行错误。高手赐教啊~~ 展开
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<<" ";
}
这个是我的程序。运行错误。高手赐教啊~~ 展开
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[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<<" ";
}
#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<<" ";
}
展开全部
#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<<" ";
}
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<<" ";
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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<<" ";
}
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<<" ";
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在for循环之前,先将i-1
再把for循环中的p>=a,改为i>=0,p--改为i--
试试运行看
再把for循环中的p>=a,改为i>=0,p--改为i--
试试运行看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只会C 不会C++ 不过ostream后面要不要.h的?
错的估计是
for(p=a+i;p>=a;p--)
cout<<*p<<" ";
i的值要重新赋0
错的估计是
for(p=a+i;p>=a;p--)
cout<<*p<<" ";
i的值要重新赋0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询