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了
就是这样

C语言问题简单的很,菜鸟送分,在线等,超级高分,给我讲明白,否则关闭问题...
{ printf("%c",*p);p--; \/\/令p指向字符串的前一个字符 } printf("\\n");}

C语言问题简单的很,菜鸟送分,在线等
1.程序分析:用第一个与最后一个交换。2.程序源代码:define N 5 main(){ int a[N]={9,6,5,4,1},i,temp;printf("\\n original array:\\n");for(i=0;i<N;i++)printf("%4d",a[i]);for(i=0;i<N\/2;i++){temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;} printf("...

C语言问题简单的很,菜鸟送分,在线等
include <stdio.h> int wb(int);\/\/WB为最终算法 int bw(int); \/\/BW为主算法 int ww(int,int,int); \/\/WW为判断润年的算法 void main(){ int nian, yue , ri ;int wb =0 ;printf("输入你需要的日期,使用-分割");scanf ("%d-%d-%d",&nian ,&yue ,&ri);wb=ww( nian ,yue...

C语言问题简单的很,菜鸟送分,在线等
不就是输入一个正整数,然后反序输出么,关键部分无非就是 while(k!=0){ m=k%10;t=t*10+m;k\/=10;} 10可以直接取一个数的个位数,\/10则相当于将个位数去掉,把原来的十位数变成现在的个位数,然后就可以用%10取个位数(即原来的十位数),以此类推,可以取完该数的各位数....

C语言问题简单的很,菜鸟送分,在线等
int a;scanf ("%d",&a);printf ("%c",a+1);

菜鸟送分,C语言问题简单的很,在线等
\/*空出必要的地方,使输出为三角形。第二个参数为输出a[0]所占列数,a[0]实际上就是1,不足那么多列,前面就补空格了。( P - r ) * 3 + 1就是计算首个输出应占的列数。d就是说输出(第三个参数,a[0])占的列数要由第二个参数决定。\/ ...

c语言的基础问题菜鸟啊明天要教高手帮忙在线等啊~~
include <stdio.h> void main(){ int x,i;printf("please input a int number:");\/\/请输入一个数字:scanf("%d",x);\/\/输入数字 for (i=1,i<=9,i++){ printf("%d*%d=%d ",x,i,x*i);if(i mod 2 ==0)\/\/自动换行 printf("\/n");} } ...

c语言问题,菜鸟找高手。。在线等答案。。急
1.n=0;2.n=n*10+((S[i]-48)%10);

计算机c语言,有几个问题,望解答,准备计算机二级的菜鸟在此谢过...
【1】我也觉得是长双精度,不过长双精度对于初学者来说很少用到,可能是因为这个原因,所以答案是双精度吧。【2】C语言的注释可以放在程序的任何地方,只要写在注释符\/**\/中就可以。【3】应该跟你理解的也要,C的类型int也是标识符,命名的时候不要和那些系统默认的符号重复就可以了。【4】char c1...

C语言菜鸟问题
这是逗号表达式,执行顺序为从右向左,++i,会先i自增1,然后作为++i这个表达式的返回值;对于i--,在基础的时候就应该知道C程序是用分号“;”分割每条语句的,那么整个的printf()就是一条语句,所以i--这个表达式会先返回i本身的值,然后再该条完整语句结束后,再自减1;对于改到题目:首先执行...

相似回答
大家正在搜