' 再说思路: 首先已知 i 和 j 分别代表选用 a 和 b 的索引,既然是使用比较小的排在前边,那如果 a[i] 比 b[j] " /> ' 再说思路: 首先已知 i 和 j 分别代表选用 a 和 b 的索引,既然是使用比较小的排在前边,那如果 a[i] 比 b[j] "> c语言 程序填空?_软件运维_内存溢出

阅读15

c语言 程序填空?,第1张

先说答案:

第一个

c[k] = a[i] i++

第二个空

b[j] j++

第三个空'c[k] = a[i]

'

再说思路:

首先已知 i 和 j 分别代表选用 a 和 b 的索引,

既然是使用比较小的排在前边,

那如果 a[i] 比 b[j] 小,就肯定是选用 a[i]。

比如第一次比较时,a[0] <b[0],所以用 a[0]。于是有

i++

比较后其它地方没有给 i 或 j 自增,

a[0] 已经被写到 c[0] 位置了,

所以下一次比较应该使用 a[1] 与 b[0] 再进行比较,

因此需要进行 *** 作。

if结束后,不走else,直接k++,所以接下来是看c[1]是什么数字。

再执行一次发现 a[1] <b[0] ,i 变成 2,k变成2。

再看 else 部分,走到 a[2] 与 b[0] 的比较发现结果是

a[2] >b[0],所以此时 c[2] 应当使用 b[0],

因此用 c[k] = b[j] 来选用更小的答案。

随后与a一样,需要对 j 进行 ++,下一次使用 a[2] 与 b[1] 比较,

判断结束后 k++,下一次判断 c[3] 是 a[2] 还是 b[1]。

当所有判断结束后,两个char[] 已经按照顺序排列到了 c[] 里,此时的 k 坐标在完成最后

一次判断后还是 ++ 了一次,指向

len(a+b)+1 的位置。

因此最后一个按照c语言的规范应当填充 '\0' 做字符串的结尾。

根据代码意思:

第一个空填写x<4。

第二个空填写y<3。

最后一个空填写z==3。ps:这代码有一个知识点,二维数组赋初值,没有使用嵌套大括号来指明区域,按照连续地址对应赋值,数量不够对应的元素,取默认值0。(既这里的二维数组在内存中看成是从第一行

第一个

元素到最后一行最后一个元素的一维数组)。


static是定义静态变量,在这个代码中没有实际用处。起到全局变量作用且具有隐藏性,并且在被调用函数中使用,静态变量只在第一次调用被初始化,之后每次调用都保留值。

欢迎分享,转载请注明来源:

内存溢出

原文地址:

https://54852.com/yw/11087560.html
第二个
(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
mp3合并mp3合并一级用户组
Win7间歇性黑屏提示显示器驱动程序已停止响应并且已恢复怎么办
上一篇
2023-05-13
中断服务程序的最后一条指令是RET或RETI对吗?
2023-05-13

发表评论
请登录后评论...
登录
提交

    评论列表(0条)
保存
{label}{label}