fun(int a][3]int b[3*3])函数

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

效果如图

img


代码

#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;
}


如有帮助给个采纳谢谢