当前位置: 代码迷 >> C语言 >> 求助:有个程序看不明白
  详细解决方案

求助:有个程序看不明白

热度:129   发布时间:2006-02-03 12:52:00.0
我之前看错了,呵呵!
10楼正解,k应当代表当前读入的字母的长度或大于,因为是从后向前读,所以k随着pp[l][i]的i--要不断++
但是还有一点问题,比如当k=1的时候,第一次for循环pp[2]=pp[1],这里pp[1]并没有初始化,不知道这样写是不是严格。读第一个单词时每一次 for循环都会出些这样的情况。有知道的请讲讲。

i=strlen-1因为数组下标从0开始,所以最后一个数组下标是整长-1。
----------------解决方案--------------------------------------------------------

回楼上,明白了,之前想法有问题,多谢哈哈

初始赋值时pp[0]为0,其余自动填0,我说的多余就在你提到的pp[2]=pp[1]这里,每次循环都多出一些这样的赋值,感觉很不对劲。不会我想法又出问题了吧,明白的说下,晚上再来看看。


----------------解决方案--------------------------------------------------------

我在vc里试了一下,a[100]={0};确实是全部赋值为0,赫赫!
每个循环是要多出一些赋值,我也不清楚是什么原因,我想是不是出题的人思路有问题......
因为k是代表已经读入的单词的长度,那么单词的长度第一次一个字母就是1啦,所以k=1,我是猜的
改成这样会好些:
k=0;
while(1)
......
pp[0]=xx[l][i];
for(j=k;j>=0;j--)
pp[j+1]=pp[j];
k++;i--;
第一次k=0,读入一个数之后k才是1,也许是出题的人思路错了


----------------解决方案--------------------------------------------------------
  相关解决方案