鱼C论坛

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

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

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

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

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

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

赋值的语句,思来想去,却总是找不到原因,请大家指点迷津!非常感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

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

放结束符'\0'的空间地址,应该是那样造成的!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-6 08:41:18 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-27 04:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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