C语言问题简单的很,菜鸟送分,在线等,超级高分,给我讲明白,否则关闭问题

#include <stdio.h>
main()
{
int t=0;
char wb[255];
char* p = wb;
printf("请输入一个正整数");
gets(wb);
while( *p )
{
p++;
t++;
}
p--;

for( ; t > 0 ; t-- )
{
printf("%c",*p);
p--;
}
printf("\n");
}

0基础
还有追加
给我加好注释
谢谢了
日的前5楼没一个想要分的

#include <stdio.h>
main()
{
int t=0;
char wb[255]; //用于存放输入数据的字符串
char* p = wb; //令指针p指向字符串的第一个字符
printf("请输入一个正整数");
gets(wb); //读取数据
while( *p ) //*p不等于0表示p尚未指向字符串末尾,此时进入循环体
{
p++; //令p指向字符串中的下一个字符
t++; //此时t记录的是(p总共指向过的字符的个数-1)
}
//循环结束后,p指向字符串的结束标志'\0',t记录了字符串的长度
p--; //令p指向字符串中的前一位
//此时,p指向了字符串的最后一位
for( ; t > 0 ; t-- ) //从后往前输出字符串的每一位,t每减小1就输出了一个字符,t=0的时候恰好每一位都已输出
{
printf("%c",*p);
p--; //令p指向字符串的前一个字符
}
printf("\n");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-05-14
#include <stdio.h>
main()
{
int t=0; //定义一个整形变量并且赋值为0
char wb[255]; //定义一个字符叔祖
char* p = wb; //定义一个字符指针,并且指向字符数组的开始地址
printf("请输入一个正整数"); //
gets(wb); //输入一串数字,以回车结束,比如你输入123456\0 为例
while( *p ) //遇到'\0'时,结束循环,这里循环的意义就是用t记录你刚才输入字符的个数
{
p++; //地址自加一,指向下一个地址,开始指向wb[0],++后就指向wb[1],依次类推,直到结束
t++; //p每指向一个值,t就加1一次,记录数组内数值的个数
}
p--;//这里,p指向最后一个字符,也就是回车\0,所以要倒退一个地址,也就是指向6的地址

for( ; t > 0 ; t-- ) //这里的for循环就是输出了,
{
printf("%c",*p); //指针指向的内容,从最后一个开始输出,结果是654321
p--; //指向上一个地址,就是原来p指向最后一个数6的地址,p--后就指向5的地址,依次类推
}
printf("\n"); //输出换行
}本回答被提问者采纳
第2个回答  2007-05-14
#include <stdio.h>
void main()
{
int t=0;
char wb[255];
char* p = wb; //使P指针指向数组开头
printf("请输入一个正整数");
gets(wb);
while( *p ) //遇到'\0'时,结束循环
{
p++; // 指针指向数组的下一个元素
t++; //用T计数
}
p--; //因为结束循环时P指向'\0'

for( ; t > 0 ; t-- ) //下面是从数组的最后一个元素向前的顺序输出,不难理解吧
{
printf("%c",*p);
p--;
}
printf("\n");
}
第3个回答  2007-05-14
毫无意义的程序....wb[]数组没有初值,如果有的话,p的意思就是遍历这个数组,直到遇到0为止,而t则是不为0元素的个数...最后一个for循环输出这些值(倒序).......

而你这个程序,输入一正整数后,即赋值给了wb,即是wb[0],...实在不想说下去了.....楼主好自为之吧...
第4个回答  2007-05-14
a=p==&m;
p==&m 是逻辑运算
p当然不等于&m所以为0
再给a赋值 就是0了
就是这样
相似回答