5.编写一个 fun(int a][3]int b[3*3])函数,将二维数组 a表示的 373 矩阵中的正整数逐行逐列依次存入到一维数组b中,并返回b数组元素的个数,在主函数中输出数组b 中元素。
-1 7 6
8 -4-9
例如:输入矩阵 4 2 -5 输出数组 b为:76842
来自GPT的回答:
下面是一个实现该函数的示例代码:
cpp
Copy code
#include <iostream>
using namespace std;
int fun(int a[][3], int b[])
{
int count = 0;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (a[i][j] > 0)
{
b[count] = a[i][j];
count++;
}
}
}
return count;
}
int main()
{
int a[3][3] = {{-1, 7, 6}, {8, -4, -9}};
int b[9];
int count = fun(a, b);
for (int i = 0; i < count; i++)
{
cout << b[i];
}
cout << endl;
return 0;
}
在这个示例中,我们使用两个嵌套的循环遍历二维数组 a 的所有元素。如果元素是正整数,则将其存入一维数组 b 中,并增加 count 的计数器。最后,将 count 作为函数的返回值,表示存入 b 数组的元素个数。
在主函数中,我们定义了一个二维数组 a 并初始化,以及一个一维数组 b。然后调用 fun 函数将正整数逐行逐列存入 b 数组,并将存入的元素个数打印输出。
运行示例代码,输出结果将为 76842。
效果如图
#include <iostream>
using namespace std;
int fun(int a[][3], int b[3*3]) {
int index = 0; // 定义一维数组下标
for (int i=0; i<3; i++) { // 遍历二维数组每一行
for (int j=0; j<3; j++) { // 遍历二维数组每一列
if (a[i][j] > 0) { // 判断是否为正整数
b[index] = a[i][j]; // 将该元素存入一维数组中
index++; // 一维数组下标加1
}
}
}
return index; // 返回一维数组的元素个数
}
int main() {
int a[3][3] = {
{-1, 7, 6},
{8, -4, -9},
{4, 2, -5}
};
int b[3*3];
int len = fun(a, b); // 调用fun函数并获取返回值
for (int i=0; i<len; i++) { // 遍历一维数组
cout << b[i];
}
cout << endl;
return 0;
}
如有帮助给个采纳谢谢