填空题   下列给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值。
    例如,若N=3,有下列矩阵:
    1    2    3
    4    5    6
    7    8    9
    首先累加1、5、9,然后累加3、5、7,函数返回值为30。
    请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
    注意:部分源程序给出如下。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
    #include<stdio.h>
    #define N 4
    fint un(int t[][N],int n)
    {
    int i,sum;
    /*****************found*****************/
    ______;
    for(i=0;i<n;i++)
    /*****************found*****************/
    sum+=______;
    for(i=0;i<n;i++)
    /*****************found*****************/
    sum+=t[i][n-i-______;
    return sum;
    }
    main()
    {
    int t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10}i,j;
    printf('\nThe original data:\n');
    for(i=0;i<N;i++)
    {
    for(j=0;j<N;j++)
    printf('%4d',t[i][j]);
    printf('\n');}
    printf('The result is:%d',fun(t,N));
    }
 
【正确答案】
【答案解析】 填空1:变量sum存储主对角线与反向对角线元素之和,所以为其赋初值0。 填空2:主对角线元素的行下标和列下标是相同的,所以应填入t[i][i]。 填空3:反向对角线元素的行下标和列的下标之和为n-1,所以应填入1。