求助啊。。。

伞****人 UID.2860146
2017-08-14 发表

我预期的是num是2008.8.8之前的日期总和。
然而运行起来神马都没有,这不科学啊!

敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
TonyDeng UID.2870126
2017-08-14 回复

先学调试

伞****人 UID.2860146
2017-08-14 回复

现在我搞成这样了,为什么和正确答案211不符?

TonyDeng UID.2870126
2017-08-14 回复

本帖最后由 TonyDeng 于 2017-8-14 18:36 编辑

Quote伞下人 发表于 2017-8-14 18:03 现在我搞成这样了,为什么和正确答案211不符?
正确答案不是211啊,你用电脑自带的计算器算算就知道了。
***图片停止解析***

TonyDeng UID.2870126
2017-08-14 回复

给你参考一下
***图片停止解析***

zcxsythenew UID.911687
2017-08-14 回复

本帖最后由 zcxsythenew 于 2017-8-14 19:59 编辑

Quote伞下人 发表于 2017-8-14 18:03
现在我搞成这样了,为什么和正确答案211不符?


1. 根据代码第12行,你的程序将计算“0月”到“7月”的天数。请问“0月”是什么?
2. 第14行,请确认变量没有写错。
3. (潜在问题,在本例中不影响结果)代码中,并没有在判断非闰年后给r赋值28。
4. (潜在问题,在本例中不影响结果)月份的大小并不严格按照奇偶性分配。

zcxsythenew UID.911687
2017-08-14 回复

QuoteTonyDeng 发表于 2017-8-14 18:48
给你参考一下
***图片停止解析***


依我看,楼主可能还没有学数组。

TonyDeng UID.2870126
2017-08-14 回复

本帖最后由 TonyDeng 于 2017-8-14 19:54 编辑

Quotezcxsythenew 发表于 2017-8-14 19:35 依我看,楼主可能还没有学数组。
他主要是思路问题,语言上学没学到数组,不会影响思考时第一时间想到这样查表比计算更简捷,所以他越算越乱。如果他的思路精简,应该是考虑或提问要这样做应该怎麽实现,一般的编程指导思想,是思路决定代码,不能是语言到哪里就按着语言的水平走,必须是语言如何实现自己的目的,不是被语言规范住实现方法。事实上任何一门能夠拿出来实用的语言,都必定有其实现普遍需求的手段,我们要学的是这个。很明显,楼主没有考虑到7、8月份之后大小月是顛倒的,而且与其这样去计算不如直接查表,用手工计算都是这样做的,没谁会去找这种计算公式。《编程珠玑》说,如果你的算法和代码越来越多不合逻辑和需要特殊处理的情形,那么应该考虑是不是走错了路,按人类最自然的处理方式写代码,不要玩技巧。

zcxsythenew UID.911687
2017-08-14 回复

QuoteTonyDeng 发表于 2017-8-14 19:50
他主要是思路问题,语言上学没学到数组,不会影响思考时第一时间想到这样查表比计算更简捷,所以他越算越 ...


楼主选择了8月8日,就应该已经考虑到了大小月颠倒的问题,故意避开了。他的问题是算了个“0月”。

TonyDeng UID.2870126
2017-08-14 回复

Quotezcxsythenew 发表于 2017-8-14 19:51
楼主选择了8月8日,就应该已经考虑到了大小月颠倒的问题,故意避开了。他的问题是算了个“0月”。 ...


嗯,我的意思是抛弃这种算法。走通了也没好处的。

zcxsythenew UID.911687
2017-08-14 回复

QuoteTonyDeng 发表于 2017-8-14 19:55
嗯,我的意思是抛弃这种算法。走通了也没好处的。


我则不然,认为他必须要搞懂这个算法。因为他的语言很薄弱,请看第14行。我刚刚才发现他这里也写错了。

至于几年几月几日,不过是个练习的载体而已。只有等他有了足够的语言基础,才会有选择的余地。

伞****人 UID.2860146
2017-08-14 回复

Quote***链接停止解析***
1. 根据代码第12行,你的程序将计算“0月”到“7月”的天数。请问“0月”是什么?
2. 第14行,请确认变量 ...


哦哦,原来是这样啊!!!我想了一个下午的,感激之情,无以言表!!!{:6_233:}

伞****人 UID.2860146
2017-08-14 回复

Quote***链接停止解析***
给你参考一下
***图片停止解析***


哇塞,原来还能这么搞?{:6_216:} 不过我对两处没搞懂:
(1)month_array[]是不是从0开始的?
(2)后面的for句的执行块没看懂。
求详细解释。{:6_224:}

TonyDeng UID.2870126
2017-08-14 回复

本帖最后由 TonyDeng 于 2017-8-14 21:04 编辑

Quote伞下人 发表于 2017-8-14 20:38 哇塞,原来还能这么搞? 不过我对两处没搞懂: (1)month_array[]是不是从0开始的? (2)后面 ...
1.所有C系语言的计数都從零开始,这是此类语言的特色,一定要记住。 2.这是C99标准参考C++语言引入的语法,数据的声明和定义可以在函数体內任何位置,而且其存活范围在声明语句所在的块內部,这里的i仅在for()循環体内有效,在外面是不可见的。这是“在需要时才定义”的思想,旧式C语法是一律在函数开始处的,当变量在靠后位置使用时,程序员需要翻页回前头查看其数据类型不方便,而且一些使用时效极短的变量,作用范围越小越好,C++修改了这部分,C99标准借鉴引入。C#和Java等都是这样。

伞****人 UID.2860146
2017-08-14 回复

Quote***链接停止解析***
1.所有C系语言的计数都從零开始,这是此类语言的特色,一定要记住。
2.这是C99标准参考C++语言引入的语法, ...


哦哦,那么num += month_array;
是什么意思?
看成后
num = num + month_array
/*
month_array
这一段怎么理解?
*/

TonyDeng UID.2870126
2017-08-14 回复

本帖最后由 TonyDeng 于 2017-8-14 21:36 编辑

Quote伞下人 发表于 2017-8-14 21:29 哦哦,那么num += month_array; 是什么意思? 看成后
你书没看到这部分? x += 2 意思就是 x = x + 2。这种语法也是C语系的特色,有 +=、-=、*=、/=,书上有讲的。++、-- 是特殊情形,其实就是 += 1、-= 1。 num += month_array[0] 即是 num = num + month_array[0],month_array是数组,[0]是数组的第0个数据,回头查上面的数组表,第0个数据的值是31,是一月份的天数。

伞****人 UID.2860146
2017-08-14 回复

Quote***链接停止解析***
你书没看到这部分? x += 2 意思就是 x = x + 2。这种语法也是C语系的特色,有 +=、-=、*=、/=,书上有讲的 ...


哦,这个赋值运算的我看了,我的意思是:
num += month_array
就是把num+month_array的值赋给num
是不是
第一次循环时
num=num+month_array[0] //此时num==month_array[0]
第二次
num=num+month_array[1] //此时num==month_array[0]+[1]
第三次
...
第八次
由于array所以不计算第八次?

TonyDeng UID.2870126
2017-08-14 回复

本帖最后由 TonyDeng 于 2017-8-14 22:10 编辑

Quote伞下人 发表于 2017-8-14 21:56 哦,这个赋值运算的我看了,我的意思是: num += month_array 就是把num+month_array的值赋给num
是的。你要算8月8日之前的天数,那是前面7个月的总天数加8月份的7天。所以累加是从1月到7月,循环计数是从0-6,依次从数组中取出前面7个月的天数累加起来。你看我的月份month是从1-7月(<8的数是7),而取数组元素由于从零开始,所以序号是月份数减1。数组的第0个元素是1月份的天数、第1个元素是2月份的天数……你只要明白这个数组的布局,就明白数据应该怎麽算。这叫“数据驱动程序”,程序的逻辑和代码是由数据结构决定的,你可以搜索一下这个关键词,编程界长久争论的话题,与之相對的是“代码驱动程序”,思想是反过来的,我倾向于前者,所以写出来的也是这类,而你的代码是典型的後者。

伞****人 UID.2860146
2017-08-14 使用 Lumia 930 回复

QuoteTonyDeng 发表于 2017-8-14 22:03
是的。你要算8月8日之前的天数,那是前面7个月的总天数加8月份的7天。所以累加是从1月到7月,循环计数是 ...


明白了,非常感激,又学会了一种方法{:6_225:}

TonyDeng UID.2870126
2017-08-14 回复

Quote伞下人 发表于 2017-8-14 22:09
明白了,非常感激,又学会了一种方法


如果要作“可读性”示范,我的标识符命名不应该是那样,还是要修改的,不过那是后话了。

伞****人 UID.2860146
2017-08-14 使用 Lumia 930 回复

QuoteTonyDeng 发表于 2017-8-14 22:13
如果要作“可读性”示范,我的标识符命名不应该是那样,还是要修改的,不过那是后话了。 ...


可读性示范? 是指month_array?还是i?

TonyDeng UID.2870126
2017-08-14 回复

Quote伞下人 发表于 2017-8-14 22:20
可读性示范? 是指month_array?还是i?


是指命名应该反映出代码是干什么的,“程序是给人阅读的,计算机只是偶尔执行”,代码的编写,就如写文章一样,首先是让阅读者明白想干什么、在干什么、如何干。我建议学编程的同时,应同时阅读《代码大全》。

伞****人 UID.2860146
2017-08-14 使用 Lumia 930 回复

QuoteTonyDeng 发表于 2017-8-14 22:28
是指命名应该反映出代码是干什么的,“程序是给人阅读的,计算机只是偶尔执行”,代码的编写,就如写文章 ...


哦哦,好的

vioro UID.929080
2017-08-15 使用 Lumia Icon 回复

QuoteTonyDeng 发表于 2017-8-14 18:24
正确答案不是211啊,你用电脑自带的计算器算算就知道了。
[qpic]a3740309-f2f8-4f7e-b753-da20ef67fa37.PNG ...


你这是过了220天,别人要算的是历时多少天(总共有多少天)。就比如你从昨天到今天,按你的式子计算的结果是过了1天,但是如果要计算历时天数的话那就是2天。 PS:相信你高中的数学某个题做错了而且一直没找到错误原因

musicfly UID.225619
2017-08-15 使用 Lumia 950 回复

QuoteTonyDeng 发表于 2017-8-14 19:50
他主要是思路问题,语言上学没学到数组,不会影响思考时第一时间想到这样查表比计算更简捷,所以他越算越乱 ...


好专业呀,这不是教这方面的老师说不出这么言简意骇的话,把编程的思路短短几句话说的那么通俗易懂,我最膜拜的就是这种技术帝。

TonyDeng UID.2870126
2017-08-15 使用 Lumia 950 回复

Quotevioro 发表于 2017-8-15 15:32
你这是过了220天,别人要算的是历时多少天(总共有多少天)。就比如你从昨天到今天,按你的式子计算的结果 ...


那也不是差了9天,你做题是只知道得不得分而不知道答案会错的人。

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报