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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangtianqi 中级黑马   /  2016-8-24 20:16  /  1219 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        定义一个3行3列的二维int数组,从控制台输入前三个元素的值,要求第一行的元素是1,3,5.剩下的元素分别是该元素所在这一列的正上方的元素的3倍.打印这个二维数组从左上角到右下角这条对角线上元素的和。这个题怎么做  谢谢;{:2_30:}

点评

问题有点含糊,能说得清楚一点嘛  发表于 2016-8-25 00:47

5 个回复

倒序浏览
本帖最后由 wjk930726 于 2016-8-24 21:10 编辑

int arr[3][3] = {{1,3,5},0,0};
for(int i =1; i<=2; ++i)
        for(int j = 0; j < 3; ++j)
                arr[j] = arr[i-1][j] * 3;
for(int i = 0; I < 3; ++i)
        printf("%d",arr);
回复 使用道具 举报
本帖最后由 hbpiaoyi 于 2016-8-24 21:44 编辑

int a[3][3] = {1, 3, 5}, sum =0;
for (int i=1; i<3; i++)
      for (int j=0; j<3; j++)
            a[j] = a[i-1][j] * 3;
for (int i=0; i<3; i++)
      sum += a;
printf("%d", sum);

回复 使用道具 举报
不错不错,学习了
回复 使用道具 举报
来来,凑个热闹
#include <stdio.h>

int main()
{
    //声明1个int类型3行3列的二维数组,第一行元素是1,3,5
    int arr[3][3] = {1,3,5};
    //实现剩下的元素分别是该元素所在这一列的正上方的元素的3倍
    for(int i = 1;i < 3;i++)
    {
        for(int j = 0;j < 3;j++)
        {
            arr[i][j] = 3 * arr[i-1][j];
        }
    }
    //声明和并赋初值0
    int sum = 0;
    //遍历这个二维数组
    for(int k = 0;k < 3;k++)
    {
        for(int h = 0;h < 3;h++)
        {
            printf("%d\t",arr[k][h]);
            if(k == h)
            {
                sum += arr[k][h];
            }
        }
        printf("\n");
    }
    printf("和为%d\n",sum);
    return 0;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马