其右上三角(含主对角线)元素之和。

其右上三角(含主对角线)元素之和。
分数 12
作者 时贵英
单位 东北石油大学
输入二维数组的所有元素,求二维数组右上三角(包括主对角线)元素之和。

函数接口定义:
在这里描述函数接口。例如:
int fun(int a[3][3]);
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include <stdio.h>

int fun(int a[3][3]);

int main()
{ int i,j,s,x[3][3];;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&x[i][j]);
s=fun(x);
printf("sum=%d\n",s);
return 0;
}
/* 您的答案将被嵌入在这里 */
输入样例:
1 2 3 4 5 6 7 8 9
输出样例:
在这里填写相应的输出
sum=26

有帮助的话请给个采纳呀
fun函数这样写,你可以参考一下:

int fun(int a[3][3])
{

    int b[100];
    int sum = 0;
    int flag = 0;
    int h, l, i;
    
    for (h = 0; h < 3; h++)//这里正序
    {
        for (l = 3 - 1; l >= h; l--)//这里逆序,主对角线上的值也不可取,所以用了>
        {
            b[flag] = a[h][l];
            flag++;//记录有多少次
        }
    }
    for (i = 0; i < flag; i++)
    {
        sum = sum + b[i];
    }
    return sum;
}

运行结果:

img

全部代码,你可以自己复制运行一下:

#include<stdio.h>

int fun(int a[3][3])
{

    int b[100];
    int sum = 0;
    int flag = 0;
    int h, l, i;
    
    for (h = 0; h < 3; h++)//这里正序
    {
        for (l = 3 - 1; l >= h; l--)//这里逆序,主对角线上的值也不可取,所以用了>
        {
            b[flag] = a[h][l];
            flag++;//记录有多少次
        }
    }
    for (i = 0; i < flag; i++)
    {
        sum = sum + b[i];
    }
    return sum;
}

int main()
{
    int i, j, s, x[3][3];
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf("%d", &x[i][j]);
        }
    }
    s = fun(x);
    printf("sum=%d\n", s);
}