假设已定义4x4数组 b[114]-{4.5.6.1.2.8.1.7.2.4.6.3.4.5.9).编写实现以下功能: (1)将右上半三角元素的值全部置成0,要求结果以方阵形式输出。

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/418850804586150.jpg "#left"

纯手工回答,如果对你有所帮助的话,请给我一个采纳

#include <stdio.h>

int main()
{
    int b[][4]={4,5,6,1,2,8,1,7,2,4,6,3,4,5,9};
    for (int i = 0; i < 4; i++)
        for (int j = i; j < 4; j++)
            b[i][j] = 0;
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
            printf("%d\t", b[i][j]);
        printf("\n");
    }
   
   return 0;
}

img

以下包含第3题的4个小问题
将右上半三角元素的值全部置为0

for (int i = 0; i < 4; i++) {
    for (int j = i; j < 4; j++) {
        b[i][j] = 0;
    }
}

右下半三角元素全部置 0

for (int i = 0; i < 4; i++) {
        for (int j = 4-i-1; j < 4; j++) {
            b[i][j] = 0;
        }
}

左下半三角置 0

for (int i = 0; i < 4; i++) {
     for (int j = 0; j < i+1; j++) {
            b[i][j] = 0;
        }
}

左上半三角置 0

for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4-i; j++) {
        b[i][j] = 0;
    }
}

输出结果

 for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            cout << b[i][j] << " ";
        }
        cout << endl;
 }

如果对你有所帮助的话,请给我一个采纳哦,谢谢啦

#include <iostream>

using namespace std;

int main() {
    int b[4][4] = {{4, 5, 6, 1}, {2, 8, 1, 7}, {2, 4, 6, 3}, {4, 5, 9, 0}};

    // 将右上半三角元素的值全部置成0
    for (int i = 0; i < 4; i++) {
        for (int j = i + 1; j < 4; j++) {
            b[i][j] = 0;
        }
    }

    // 输出结果以方阵形式
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            cout << b[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7518156
  • 以下回答由chatgpt基于相关博客总结生成:

    将给定的4x4数组中右上半三角元素全部设置为0并输出方阵形式。

    思路: 观察到该数组值全部为小于10的整数,因此可以不考虑字符数组处理情况,直接建立二维数组处理。

    由于需要将方阵右上半三角元素全部设置为0,因此根据方阵性质可知,这些元素的下标应满足i+j<4,同时根据左下上三角元素之和需为0的条件,除去对角线一共只有6个元素需要更改,分别为(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)。

    因此直接遍历对应下标的元素修改即可。

    代码实现如下:

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int a[4][4]={},i,j;//二维数组初始化为0
        a[0][1]=a[0][2]=a[0][3]=a[1][2]=a[1][3]=a[2][3]=0;//二维数组下标从0开始,直接遍历修改即可
        for(i=0;i<4;i++)
        {
            for(j=0;j<4;j++)
            {
                cout<<a[i][j]<<" "; //逐个输出元素
            }
            cout<<endl;//一行输出完毕,换行输出下一行元素
        }
        return 0;
    }
    

    代码实现很简单,不过因为C++二维数组与一维数组不太一样导致输出时较为麻烦,需要逐行逐个处理输出。

    修改元素时比较直接,直接一一遍历即可。

    以下是代码的输出结果:

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    因为题目比较简单,其他的参考资料在此不再赘述。