鱼C论坛

 找回密码
 立即注册
查看: 1782|回复: 2

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

[复制链接]
发表于 2016-7-5 11:56:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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



  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int i[24] = {1}; //两年内每月兔子的数量,第一个月兔子数量为1.

  5.         int count,a,b,c,ret = 0;//count:当前月数,a:兔子开始繁殖的月数,ret:兔子的总数。

  6.         for (count = 0;count <= 23; count++)
  7.         {
  8.                 c = count;

  9.                 for (a = count + 2; a <= 23; a++)
  10.                 {
  11.                         i[a] = i[a] + i[count];
  12.                 }

  13.                 count = c;
  14.         }

  15.         for (b = 0; b <= 23; b++)
  16.         {
  17.                 ret = ret + i[b];
  18.         }

  19.         printf ("两年之后繁殖%d对兔子!\n",ret);

  20.         return 0;
  21. }
复制代码


上面代码是最终测试好没问题的代码,原先


  1. for (count = 0;count <= 23; count++)
  2.         {
  3.                 c = count;

  4.                 for (a = count + 2; a <= 23; a++)
  5.                 {
  6.                         i[a] = i[a] + i[count];
  7.                 }

  8.                 count = c;
  9.         }
复制代码


这段代码里是这样写的:

  1. for (count = 0;count <= 23; count++)
  2.         {
  3.                 for (a = count + 2; a <= 23; a++)
  4.                 {
  5.                         i[a] = i[a] + i[count];
  6.                 }
  7.         }
复制代码


运行的时候发现有问题,经过1个小时的问题排查,发现count这变量的值在经过最里层循环之后,值会改变,可是自已检查又没有发现里面有给count

赋值的语句,思来想去,却总是找不到原因,请大家指点迷津!非常感谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-5 12:11:09 | 显示全部楼层
本帖最后由 梦回千百丶度 于 2016-7-5 12:14 编辑

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

放结束符'\0'的空间地址,应该是那样造成的!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-6 08:41:18 | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-15 11:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表