老师好:
请问能讲解一下题集3第三问的题意吗?我分别用递归和循环写了代码,结果都不能拿满分,不知道问题在哪里。
更正:经过尝试,题目要求的是A1 + A2 + A3... + An
https://onlinegdb.com/gMUvGtQk- 这是代码如果把result和x的初始化那两行删掉答案就会出错,但为什么系统不会自动初始化为0呢
You have no rights to post comments
Comments
如果把result和x的初始化那两行删掉答案就会出错,但为什么系统不会自动初始化为0呢
我理解的是当你将变量赋值的时候,对应变量所在内存会变成你给定数值的二进制表示方式。eg. a = 0; -> 00000000。 而你定义变量的时候C只会在内存中给这两个变量分别分配两个字节,而并没有变动内存里的内容。这样你直接输出变量而不赋值的时候会输出内存里原来的内容,出现“垃圾值”的情况。
再看到你代码的22行:
x=x+i*(i-1)*(i-2);
因为你没有给x赋值,所以等号右边的x计算的时候是一个垃圾值,因此答案会错。
为什么初始化为0,不是初始化为1,或-1呢?
还有,大家在提交前,为啥不用样例测试一下呢?
看到有同学得了80分的。