这题咋做啊解释也没咋理解
https://static01.imgkr.com/temp/bd412d0f104a4c129f113a1c7d3d1225.jpghttps://static01.imgkr.com/temp/5ae183ae936b405f960e5311f23a8690.jpg
本帖最后由 番杰 于 2022-3-2 17:22 编辑
这个就是主函数调用子函数(sum)实现的,递归用法:
res = sum(array,4);
直接把array和4带入sum函数就行,
一层层的递归,最后就可以看成:
res = array + array + array + array +array +0;(加0表示递归结束)
= 1 + 2 + 3 + 4 + 5=15
sum 的第二个参数写的是len,但是其实是index,应该把len改成index才对
因为sum函数中是吧len这个变量作为数组的索引来用的
计算的是 1 + 2 + 3 + 4 + 5
sum(array, 4);
这个4指的是 array,就是数组的第4个元素
sum函数把len变量作为数组索引来用的
说真的,换一个教材吧,这教材是真的不行
一开始学到的是错误的东西,到后面要改正过来是非常困难的
这教材真的不行
看这教材,你要么学到的C语言是错误的,要么就直接把你劝退
这教材是真的不行
为什么?
1. main()
main函数是这么写的?这教材中讲的这个C语言是多么古老的那个版本?不是 K&R C 也非常接近了
2. 把len作为index用
取一个错误的 有意义的名字,还不如取一个没有意义的名字
像这样 int a(int *b, int c)
这教材最喜欢出 i++ + ++i 这类问题了,这类代码不符合标准,不同的编译器会给出不同的结果
不符合标准的教材才讨论不符合标准的代码
看这类教材你真的学不会C语言
看这类教材你只能学会考试
页:
[1]