鱼C论坛

 找回密码
 立即注册
查看: 3074|回复: 31

[已解决]学C带你飞39课后题2绝逼是错误的请老师更正

[复制链接]
发表于 2018-7-9 17:06:54 | 显示全部楼层 |阅读模式

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

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

x
不能加20个9
最佳答案
2018-7-9 18:59:04
如果我没有记错的话,带你飞C的39课2题答案真的正确吗? 是你发表的吧;还没有结贴啊?

说回这里  result = (char *)malloc(INIT_SIZE);
#define INCREMENT 10
#define INIT_SIZE INCREMENT

你总共分配了10这么个大小来存和,凭什么能加20个9?

2018-07-09_185731.png



最后麻烦记得结贴。。。

评分

参与人数 1荣誉 +6 鱼币 +6 贡献 +6 收起 理由
小甲鱼 + 6 + 6 + 6 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-9 17:48:33 | 显示全部楼层
举例说明,还有截图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-9 18:59:04 | 显示全部楼层    本楼为最佳答案   
如果我没有记错的话,带你飞C的39课2题答案真的正确吗? 是你发表的吧;还没有结贴啊?

说回这里  result = (char *)malloc(INIT_SIZE);
#define INCREMENT 10
#define INIT_SIZE INCREMENT

你总共分配了10这么个大小来存和,凭什么能加20个9?

2018-07-09_185731.png



最后麻烦记得结贴。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-9 19:35:39 | 显示全部楼层
人造人 发表于 2018-7-9 17:48
举例说明,还有截图

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-9 19:36:19 | 显示全部楼层
ba21 发表于 2018-7-9 18:59
如果我没有记错的话,带你飞C的39课2题答案真的正确吗? 是你发表的吧;还没有结贴啊?

说回这里  resul ...

谢谢谢谢谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-9 19:49:39 | 显示全部楼层
ba21 发表于 2018-7-9 18:59
如果我没有记错的话,带你飞C的39课2题答案真的正确吗? 是你发表的吧;还没有结贴啊?

说回这里  resul ...

老师你没看见realloc重新分配吗?所以不用一开始改1000
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-9 20:02:40 | 显示全部楼层
sswy 发表于 2018-7-9 19:49
老师你没看见realloc重新分配吗?所以不用一开始改1000

到底你还是没有专心学。
用心看,用心学吧。别这么粗心。
最主要的一点是自己不专心又乱指错误;这不给人家笑话。

// 将两个字符串对应的数值相加
char *add_two_strs(char *str1, char *str2)
{
        int carry = 0; // 存放进位
        int num1, num2, num3;
        char *result;

        result = (char *)malloc(INIT_SIZE); // 你不改INCREMENT 你觉得这里能分多大的内存来存放相加后的内容
        if (result == NULL)
        {
                exit(1);
        }
                memset(result, 0, INIT_SIZE);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-9 20:15:29 | 显示全部楼层
ba21 发表于 2018-7-9 20:02
到底你还是没有专心学。
用心看,用心学吧。别这么粗心。
最主要的一点是自己不专心又乱指错误;这不给 ...

char *append_result(char *result, char ch)
{
       char *last = result;
        int limit = 0;
        int times = 1;

        // 定位到字符串的末尾
        while (last[limit++] != '\0')
        {
                if (limit >= INCREMENT)
                {
                        limit = 0;
                        times++;
                        last += INCREMENT;
                }
        }

        last[limit - 1] = ch;
        if (limit >= INCREMENT)
        {
                result = (char *)realloc(result, INIT_SIZE + INCREMENT * times);//这里是把result在INIT_SIZE基础上从新分配了内存的
                last += INCREMENT;
        }
        last[limit] = '\0';

        return result;
}


老师,首先我比任何都认真学,也请老师认真点看清楚后面的代码,内存是重新用realloce分配了的,懂吗老师?

还有老师我不怕人笑话,因为我要搞懂一个问题,笑话我下有什么,将来不懂才最可笑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-9 20:17:07 | 显示全部楼层
ba21 发表于 2018-7-9 20:02
到底你还是没有专心学。
用心看,用心学吧。别这么粗心。
最主要的一点是自己不专心又乱指错误;这不给 ...

num3 = num1 + num2 + carry;
                if (num3 > 9)
                {
                        append_result(result, num3 - 10 + '0');
                        carry = 1;
                }
                else
                {
                        append_result(result, num3 + '0');
                        carry = 0;
                }


认真点看老师,进入append_result之后result大于10会用realloc重新分配,懂吗老师?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-9 20:20:15 | 显示全部楼层
sswy 发表于 2018-7-9 20:17
num3 = num1 + num2 + carry;
                if (num3 > 9)
                {

你是正确的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-9 20:21:08 | 显示全部楼层
ba21 发表于 2018-7-9 20:02
到底你还是没有专心学。
用心看,用心学吧。别这么粗心。
最主要的一点是自己不专心又乱指错误;这不给 ...

这个如何解释?
1.png
GIF.gif
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-9 20:22:45 | 显示全部楼层
第一张看不清,换一张
2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-9 20:24:46 | 显示全部楼层
看gif吧,这一张也很模糊,这不是我的问题

这是2.png
2.zip (36.64 KB, 下载次数: 1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-9 20:32:35 | 显示全部楼层

老师我说的对吗?而且他什么态度,我本来就是做CG的,他居然说我不认真学习,我每天除了睡觉就是练习,这个和我10年前做角色动画一样,我当时非常菜大家都在嘲笑我,但是我现在是业内顶尖高手,就凭一股认真二字,我不怕人家笑我,我不怕真的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-9 20:39:50 | 显示全部楼层
sswy 发表于 2018-7-9 20:32
老师我说的对吗?而且他什么态度,我本来就是做CG的,他居然说我不认真学习,我每天除了睡觉就是练习,这 ...

^_^
你是正确的
的确是小甲鱼老师的代码有问题
@小甲鱼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-9 20:41:49 | 显示全部楼层
sswy 发表于 2018-7-9 20:32
老师我说的对吗?而且他什么态度,我本来就是做CG的,他居然说我不认真学习,我每天除了睡觉就是练习,这 ...

你的确很认真,我之前学这部分时就没有发现这个
我不记得之前是怎么回事了,但是就是没有发现这个问题
^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-9 20:58:29 | 显示全部楼层
人造人 发表于 2018-7-9 20:41
你的确很认真,我之前学这部分时就没有发现这个
我不记得之前是怎么回事了,但是就是没有发现这个问题
...

谢谢老师,记得您一直回复我的问题,谢谢您,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-9 20:59:06 | 显示全部楼层
人造人 发表于 2018-7-9 20:41
你的确很认真,我之前学这部分时就没有发现这个
我不记得之前是怎么回事了,但是就是没有发现这个问题
...

还送给我了单片机的书,再次感谢,学生一直记得
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-9 21:01:23 | 显示全部楼层
ba21 发表于 2018-7-9 20:02
到底你还是没有专心学。
用心看,用心学吧。别这么粗心。
最主要的一点是自己不专心又乱指错误;这不给 ...

老师,敢讽刺我,就敢出来道个歉嘛,希望以后你能多帮助我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-9 23:31:10 | 显示全部楼层
sswy 发表于 2018-7-9 21:01
老师,敢讽刺我,就敢出来道个歉嘛,希望以后你能多帮助我

怎么敢讽刺你,给你指正你当讽刺,这老师我当不起。

然后 你指出的这里,我看了一眼,我猜 的没错的话,这是有进位的时候要求增大内存。
     num3 = num1 + num2 + carry;
                if (num3 > 9)
                {
                        append_result(result, num3 - 10 + '0');
                        carry = 1;
                }
                else
                {
                        append_result(result, num3 + '0');
                        carry = 0;
                }

再者 你是你提问的,我是来给你答的,没有讽刺你的意思。你要是觉得我说得不好,你可接回复不用我答即可。话说回来你学得好不好跟我有半毛钱关系,给你讲起我好像回复你占了你什么便宜一样。


还有一点,你觉得甲鱼老师的代码有问题,我们答的不好,你可以直接呼他交流。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 18:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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