关于数组的问题,有些疑惑想请教大家。
十六课最后一道练习题,关于兔子的繁殖问题,我想到用数组的方式去解决,于是写出了下面这一段代码:#include <stdio.h>
int main()
{
int i = {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 = i + i;
}
count = c;
}
for (b = 0; b <= 23; b++)
{
ret = ret + i;
}
printf ("两年之后繁殖%d对兔子!\n",ret);
return 0;
}
上面代码是最终测试好没问题的代码,原先
for (count = 0;count <= 23; count++)
{
c = count;
for (a = count + 2; a <= 23; a++)
{
i = i + i;
}
count = c;
}
这段代码里是这样写的:
for (count = 0;count <= 23; count++)
{
for (a = count + 2; a <= 23; a++)
{
i = i + i;
}
}
运行的时候发现有问题,经过1个小时的问题排查,发现count这变量的值在经过最里层循环之后,值会改变,可是自已检查又没有发现里面有给count
赋值的语句,思来想去,却总是找不到原因,请大家指点迷津!非常感谢! 本帖最后由 梦回千百丶度 于 2016-7-5 12:14 编辑
{:10_258:} 刚才试了试,发现下面有错的那代码又可以正常执行,突然想起,昨天定义数组时,少定义了存
放结束符'\0'的空间地址,应该是那样造成的!! {:10_245:} 学习
页:
[1]