|  | 
 
| 
十六课最后一道练习题,关于兔子的繁殖问题,我想到用数组的方式去解决,于是写出了下面这一段代码:
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 
 复制代码
#include <stdio.h>
int main()
{
        int i[24] = {1}; //两年内每月兔子的数量,第一个月兔子数量为1.
        int count,a,b,c,ret = 0;//count:当前月数,a:兔子开始繁殖的月数,ret:兔子的总数。
        for (count = 0;count <= 23; count++)
        {
                c = count;
                for (a = count + 2; a <= 23; a++)
                {
                        i[a] = i[a] + i[count];
                }
                count = c;
        }
        for (b = 0; b <= 23; b++)
        {
                ret = ret + i[b];
        }
        printf ("两年之后繁殖%d对兔子!\n",ret);
        return 0;
}
 上面代码是最终测试好没问题的代码,原先
 
 
 复制代码
for (count = 0;count <= 23; count++)
        {
                c = count;
                for (a = count + 2; a <= 23; a++)
                {
                        i[a] = i[a] + i[count];
                }
                count = c;
        }
 这段代码里是这样写的:
 
 复制代码
for (count = 0;count <= 23; count++)
        {
                for (a = count + 2; a <= 23; a++)
                {
                        i[a] = i[a] + i[count];
                }
        }
 运行的时候发现有问题,经过1个小时的问题排查,发现count这变量的值在经过最里层循环之后,值会改变,可是自已检查又没有发现里面有给count
 
 赋值的语句,思来想去,却总是找不到原因,请大家指点迷津!非常感谢!
 | 
 |