梦回千百丶度 发表于 2016-7-5 11:56:00

关于数组的问题,有些疑惑想请教大家。

十六课最后一道练习题,关于兔子的繁殖问题,我想到用数组的方式去解决,于是写出了下面这一段代码:



#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:11:09

本帖最后由 梦回千百丶度 于 2016-7-5 12:14 编辑

{:10_258:} 刚才试了试,发现下面有错的那代码又可以正常执行,突然想起,昨天定义数组时,少定义了存

放结束符'\0'的空间地址,应该是那样造成的!! {:10_245:}

xhbsingle 发表于 2016-7-6 08:41:18

学习
页: [1]
查看完整版本: 关于数组的问题,有些疑惑想请教大家。