求高手解释一下下面这条C语言反序的意思。详细讲解下下面这个程序的意思。

#include<stdlib.h>
#include<stdio.h>
int main(void)
{
char c[100]={0},b[100]={0};
int a,i=0,n,d;
gets(c);
for(a=0;a<100;a++)
{
if(c[a]=='\0')
break;
else i++;
}
n=i;
for(d=0;d<i;d++)
{
b[n-1]=c[d];
n--;
}
puts(b);
return 0;
}

#include<stdlib.h>
#include<stdio.h> /*编译预处理
int main(void)
{
char c[100]={0},b[100]={0}; /定义两个101个长度的字符数组
int a,i=0,n,d; /定义变量
gets(c); /从键盘获取一个字符
for(a=0;a<100;a++) / 输入c数组的内容
{
if(c[a]=='\0') /如果遇到结束符则跳出
break;
else i++;/计算共输入了多少个字符
}
n=i;/将输入的字符个数值付给n
for(d=0;d<i;d++)/反向输出c数组的值
{
b[n-1]=c[d];/将c数组的值反向送给b数组
n--;/控制变量,使得b数组的标号循环往前移动
}
puts(b);/输出b数组的内容
return 0;/void类型函数,无需返回值,可用这句
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-18
主要要给b数组赋值后的那个数组赋值'0',这样才能赋值,否则有错误,无法输出。
以下程序已修改,便于学习,验证无错误,运行通过。
#include<stdlib.h>
#include<stdio.h>
int main(void)
{
char c[100]={0},k,b[100]={0};
int a,i=0,j,n,d;
gets(c);
for(i=0;i<100;i++)
{
if(c[i]=='\0')
break;
else i++;
}
n=i;
for(j=0;j<=i;j++) printf("%3c",c[j]);
puts(c);

system("pause");
for(d=0;d<i;d++)
{
k=c[d];
b[n-1]=k;
n--;
}
b[i]='\0';//关键一句话
puts(b);
system("pause");
return 0;
}
第2个回答  2013-10-18
 #include<stdlib.h>
#include<stdio.h>
int main(void)
{
char c[100]={0},b[100]={0};
int a,i=0,n,d;
gets(c);//输入字符串
for(a=0;a<100;a++)//这个循环用来计算输入字符的个数i;
{
if(c[a]=='\0')
break;
else i++;

}
n=i;//将输入字符个数赋给n
for(d=0;d<i;d++)//从后边把c字符串的每一个字符串赋给b字符串,完成倒序
{
b[n-1]=c[d];
n--;
}
     puts(b);//把b输出
    return 0;
}

第3个回答  2013-10-18
int main(void)
{
char c[100]={0},b[100]={0};
int a,i=0,n,d;
gets(c); //获得数组c的初值
for(a=0;a<100;a++) //获得c有效字符长度
{
if(c[a]=='\0') //遇0结束,其余为有效字符,i++
break;
else i++;
}
n=i; //将长度i赋予n
for(d=0;d<i;d++) //将c反序填入b中
{
b[n-1]=c[d];
n--;
}
puts(b);
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网