鱼C论坛

 找回密码
 立即注册
查看: 820|回复: 3

这题咋做啊解释也没咋理解

[复制链接]
匿名鱼油
匿名鱼油  发表于 2022-3-2 15:17:43 |阅读模式

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

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

x
https://static01.imgkr.com/temp/ ... f113a1c7d3d1225.jpg
https://static01.imgkr.com/temp/ ... 60e5311f23a8690.jpg
回复

使用道具 举报

发表于 2022-3-2 17:21:24 | 显示全部楼层
本帖最后由 番杰 于 2022-3-2 17:22 编辑

这个就是主函数调用子函数(sum)实现的,递归用法:
res = sum(array,4);
直接把array和4带入sum函数就行,
一层层的递归,最后就可以看成:
res = array[0] + array[1] + array[2] + array[3] +array[4] +0;(加0表示递归结束)
      = 1 + 2 + 3 + 4 + 5=15


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

使用道具 举报

发表于 2022-3-2 17:30:22 | 显示全部楼层
sum 的第二个参数写的是len,但是其实是index,应该把len改成index才对
因为sum函数中是吧len这个变量作为数组的索引来用的
计算的是 1 + 2 + 3 + 4 + 5
sum(array, 4);
这个4指的是 array[4],就是数组的第4个元素
sum函数把len变量作为数组索引来用的

说真的,换一个教材吧,这教材是真的不行
一开始学到的是错误的东西,到后面要改正过来是非常困难的
这教材真的不行
看这教材,你要么学到的C语言是错误的,要么就直接把你劝退
这教材是真的不行
为什么?
1. main()
main函数是这么写的?这教材中讲的这个C语言是多么古老的那个版本?不是 K&R C 也非常接近了
2. 把len作为index用
取一个错误的 有意义的名字,还不如取一个没有意义的名字
像这样 int a(int *b, int c)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-2 17:37:02 | 显示全部楼层
这教材最喜欢出 i++ + ++i 这类问题了,这类代码不符合标准,不同的编译器会给出不同的结果
不符合标准的教材才讨论不符合标准的代码
看这类教材你真的学不会C语言
看这类教材你只能学会考试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 19:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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