思路:
用一个足够长的字符数组来接受用户的输入,然后从最后数组最后一个位置开始输出字符。
代码如下:
#include
#include
#define BUFFER 1024 /*定义常量BUFFER,值为1024,作数组长度*/
int main(void)
{
int i;
char a[buffer];
gets(a); /*将用户的输入存进字符数组*/
for(i=strlen(a)-1;i>=0;i--) /*从数组的最后位置开始输出字符*/
printf("%c",a[i]); /*以字符的格式依次显示每个字符*/
printf("\n");
return 0;
}
程序运行截图如下:
不改你的程序思路结构。修改代码如下
#include
void main()
{
char p[50],*t;
t=p;
gets(p);
while(*t!='\0')
t++;/*你是从前往后查找,是加不是减*/
t--;/*这行是为了避开输出'\0'*/
while(t>=p)/*这块是对比你指针的指向位置是否到了开始,而不是对比指向内容*/
{
printf("%c",*t);
t--;
}
}
你好!
下面是我为你改的,希望对你有所帮助。
#include
void main()
{
char p[50],*t;
t=p;
gets(p);
while(*(t+1)!='\0')/*t的位置要定好
t++;
while(t+1!=p)/*同上
{
printf("%c",*t);
t--;
}
}
#include "stdio.h"
void main()
{
char p[50],*t;
t=p;
gets(p);
while(*t!='\0')
t++;
t--;
while(t!=p)
{
printf("%c",*t);
t--;
}
printf("%c",*t);
}
//第一个循环两句话颠倒了,第二个循环应该用地址是否相等来判断,最后再输出最后一个字符就可以了。本来想用do-while语句,试了试不行。不知道为什么
#include
#include
void main()
{
char p[50];
gets(p);
for(int i=strlen(p)-1;i>=0;i--)
printf("%c", p[i]);
}