//《面向对象程序设计与VC++实现》--liwei_2_3(求矩阵的行元素及对角线之和)
//--《面向对象程序设计与VC++实现》
//--Liwei_2_3
//--求矩阵的行元素及对角线之和
//--11/5/2005 Sat. morning 22:00
//--Computer Lab
#include <iostream>
using namespace std;
const int size=2;
void matrix1(int *seq,int *result_p,int &cross_p);
void matrix2(int seq[size][size],int *result_p,int &cross_p);
void matrix3(int (*seq)[size],int *result_p,int &cross_p);
int main()
{
int array[size][size];
int result[size],cross=0;//result存放行元素相加结果; cross存放对角线元素相加结果
int i,j;
cout<<"Please enter numbers "<<size*size<<" :"<<endl;
for(i=0;i<size;i++)//数据输入
{
result[i]=0;//记得初始化
for(j=0;j<size;j++)
cin>>array[i][j];
}
//matrix1(*array,result,cross);//传行地址 cross为引用参数
//matrix2(array,result,cross);//传数组
matrix3(array,result,cross);//传数组
cout<<endl<<"=========================================="<<endl;
for(i=0;i<size;i++)//数据输出
cout<<"row "<<i<<" sum is:"<<result[i]<<endl;;
cout<<endl<<"cross sum:"<<cross<<endl;
return 0;
}
void matrix1(int *seq,int *result_p,int &cross_p)
{
int i,j;
for(i=0;i<size;i++)
for(j=0;j<size;j++)
{
result_p[i]=result_p[i]+*((seq+i*size)+j);
if(i==j)
cross_p=cross_p+*((seq+i*size)+j);
}
}
void matrix2(int seq[size][size],int *result_p,int &cross_p)
{
int i,j;
for(i=0;i<size;i++)
for(j=0;j<size;j++)
{
result_p[i]=result_p[i]+seq[i][j];
if(i==j)
cross_p=cross_p+seq[i][j];
}
}
void matrix3(int (*seq)[size],int *result_p,int &cross_p) //数组指针
{
int i,j;
for(i=0;i<size;i++)
for(j=0;j<size;j++)
{
result_p[i]=result_p[i]+*(*(seq+i)+j);
if(i==j)
cross_p=cross_p+*(*(seq+i)+j);
}
}
此博客围绕《面向对象程序设计与VC++实现》展开,给出求矩阵行元素及对角线之和的代码。通过定义不同函数处理矩阵,在主函数中完成数据输入、调用函数计算,最后输出行元素和与对角线元素和。
1472

被折叠的 条评论
为什么被折叠?



