|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
赋值的语句,思来想去,却总是找不到原因,请大家指点迷津!非常感谢! |
|