Error[8]: Undefined offset: 5, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

#include <stdio.h>

int sumEven(int (*array)[5], int row){

int sum--- sum = 0 ---(4分)

for(int i=0 i<row i++)

for(int j=0 j<5 j++)

if( --- array[i][j] % 2 == 0 ---(4分) ) sum += --- array[i][j] ---(4分) 

return sum

}

int main(){

int array[4][5]

for(int i=0 i<4 i++)

for(int j=0 j<5 j++)

scanf("%d", ---  &array[i][j]  ----(4分))

printf("%d\n", sumEven( --- array[i][j], 4 ---(4分) ) ) //注意:所填的空之外两端均已有括号,只需填写函数的参数

return 0

}

先说答案:

第一个空

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' 做字符串的结尾。


)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
C语言程序填空_软件运维_内存溢出

C语言程序填空

C语言程序填空,第1张

#include <stdio.h>

int sumEven(int (*array)[5], int row){

int sum--- sum = 0 ---(4分)

for(int i=0 i<row i++)

for(int j=0 j<5 j++)

if( --- array[i][j] % 2 == 0 ---(4分) ) sum += --- array[i][j] ---(4分) 

return sum

}

int main(){

int array[4][5]

for(int i=0 i<4 i++)

for(int j=0 j<5 j++)

scanf("%d", ---  &array[i][j]  ----(4分))

printf("%d\n", sumEven( --- array[i][j], 4 ---(4分) ) ) //注意:所填的空之外两端均已有括号,只需填写函数的参数

return 0

}

先说答案:

第一个空

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' 做字符串的结尾。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7734703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存