一、具体要求:
编程求一个3×3整数矩阵主对角线元素及倒三角元素之和。(整数矩阵用二维数组matrix保存,要求用行指针变量访问二维数组)
注:行指针变量的定义格式为:int (* p)[3];
通过赋值语句p=matrix实现将行指针p指向二维数组matrix,利用p[i][j]或* (* (p+i)+j)或* (* p++ +j)访问目标元素matrix[i][j]
二、源代码:
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
int SUM1(int g[][3],int size);
int SUM2(int g[][3],int size);
int main()
{
cout<<"求一个3×3整数矩阵主对角线元素及倒三角元素之和"<<endl;
int str[3][3]={ {1,2,3},{2,-1,4},{9,4,7}} ;
int sum1,sum2,size1=3;
sum1=SUM1(str,size1);
sum2=SUM2(str,size1);
cout<<"主对角线元素之和为:"<<sum1<<endl;
cout<<"倒三角元素之和之和为:"<<sum2<<endl;
}
int SUM1(int g[][3],int size)
{
int (*p)[3],sum=0;//定义行指针
p=g;
for(int i=0;i<size;i++)sum=sum+*(*(p+i)+i);
return sum;
}
int SUM2(int g[][3],int size)
{
int (*p)[3],sum=0;//定义行指针
p=g;
for(int t=0;t<size;t++)
{
for(int j=t;j<3;j++)
sum=sum+*(*(p+t)+j);
}
return sum;
}