A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

题目:
定义一个3行3列的二维int数组,从控制台输入前三个元素的值,要求第一行的元素是1,3,5.
剩下的元素分别是该元素所在这一列的正上方的元素的3倍.打印这个二维数组从左上角到右下角这条对角线上元素的和.
如下所示:
//1, 3, 5
//3, 9, 15
//9, 27, 45

#include <stdio.h>

int main()
{
    //定义一个3行3列的二维int数组
    int arr[3][3] = {0};
   
    //为数组的前三个元素即第一行元素赋值为1,3,5
    for(int i = 0; i < 3; i++)
    {
        printf("请输入第%d个数: ", i+1);
        scanf("%d", &arr[0]);
    }
   
    //为行下标为1的元素赋值,值分别是其对应的下标为0的一行列下标相同的元素的三倍
    //为行下标为2的元素赋值,值分别是其对应的下标为1的一行列下标相同的元素的三倍
    for(int i = 0; i < 2; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            arr[i+1][j] = arr[j] * 3;
        }
    }
   
    //遍历数组
    for(int i = 0; i < 3; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            printf("%d\t", arr[j]);
        }
        printf("\n");
    }
   
    //打印这个二维数组从左上角到右下角这条对角线上元素的和
    //声明一个变量用来存储累加和
    int sum = 0;
    //观察得出从左上角到右下角这条对角线上元素的行数恰好等于列数
    for(int i = 0; i < 3; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            if(i == j)
                sum += arr[j];
        }
    }
    printf("sum = %d\n", sum);
    return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马