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