指针问题——求矩阵上三角之和

时间: 1ms        内存:128M

描述:

输入一个矩阵,求矩阵的上三角元素之和

注:本题只需要提交填写部分的代码

/*C*/

#include<stdio.h>
const int N=100;
int main()
{
    int a[N][N],i,j,sum=0,*p;
    int n;
    scanf(“%d”,&n);
    for(i=0; i<n; i++)
        for(j=0;j<n;j++)
            scanf(“%d”,&a[i][j]);
    for(i=0;i<n;i++){
        p=&a[i][i];
        for(j=0;j<n-i;j++)
        {
                 /*******************************
                请在该部分补充缺少的代码
                ********************************/
         }
    }
    printf(“%d\n”,sum);
    return 0;
}

输入:

3
1 2 3
1 2 3
1 2 3

输出:

14

示例输入:

3
1 2 3
1 2 3
1 2 3

示例输出:

14

提示:

参考答案(内存最优[1120]):

#include<stdio.h>
const int N=100;
int main()
{

    int a[N][N],i,j,sum=0,*p;
    int n;
    scanf("%d",&n);
    for(i=0; i<n; i++)
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<n;i++){
        p=&a[i][i];
        for(j=0;j<n-i;j++)
        {
sum+=*(p+j);
        }
    } 
    printf("%d\n",sum);
    return 0;
}

参考答案(时间最优[1]):

#include<stdio.h>
const int N=100;
int main()
{

    int a[N][N],i,j,sum=0,*p;
    int n;
    scanf("%d",&n);
    for(i=0; i<n; i++)
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<n;i++){
        p=&a[i][i];
        for(j=0;j<n-i;j++)
        {
sum+=a[i][i+j];
        }
    } 
    printf("%d\n",sum);
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。