
求一个c++程序(请各位大虾帮帮忙!!! 3Q)
编写程序,要求主函数定义有M行N列的二维数组A、B和C,并分别调用各函数实现:(1)从键盘向数组输入m行n列数据给A和B;(2)重载“==”运算符,比较矩阵数组A和B的是...
编写程序,要求主函数定义有M行N列的二维数组A、B和C,并分别调用各函数实现:
(1) 从键盘向数组输入m行n列数据给A和B;
(2) 重载“= =” 运算符,比较矩阵数组A和B的是否相等;
(3) 求矩阵数组A和B之和,并赋予C。
(4) 把三个数组中的m行n列的数据输出; 展开
(1) 从键盘向数组输入m行n列数据给A和B;
(2) 重载“= =” 运算符,比较矩阵数组A和B的是否相等;
(3) 求矩阵数组A和B之和,并赋予C。
(4) 把三个数组中的m行n列的数据输出; 展开
展开全部
因为重载运算符的时候,参数至少要有一个是自定义的类型,所以这题不能用重载==.
#include <iostream>
using namespace std;
const int M = 3; //矩阵的行和列
const int N = 4;
//输入函数
void input(int a[][N])
{
cout << "输入" << M << "行"
<< N << "列矩阵" << endl;
for(int i=0; i<M; ++i)
for(int j=0; j<N; ++j)
cin >> a[i][j];
}
//比较两个矩阵是够相等
bool isEqual (int a[][N], int b[][N])
{
for(int i=0; i<M; ++i)
for(int j=0; j<N; ++j)
if(a[i][j] != b[i][j])//只要有一个元素不相等就返回错
return false;
return true;
}
//求两个矩阵的和
void matrixAdd( int a[][N], int b[][N], int c[][N])
{
for(int i=0; i<M; ++i)
for(int j=0; j<N; ++j)
c[i][j] = a[i][j] + b[i][j];
cout << endl;
}
//输出矩阵
void print(int a[][N])
{
for(int i=0; i<M; ++i)
{
for(int j=0; j<N; ++j)
cout << a[i][j] << " ";
cout << endl;
}
cout << endl;
}
void main()
{
int a[M][N], b[M][N], c[M][N];
input(a);
input(b);
if(isEqual(a,b) )
cout << "两个矩阵相等" << endl;
else
cout << "两个矩阵不相等" << endl;
matrixAdd(a, b, c);
print(a);
print(b);
cout << "两个矩阵的和为:" << endl;
print(c);
}
#include <iostream>
using namespace std;
const int M = 3; //矩阵的行和列
const int N = 4;
//输入函数
void input(int a[][N])
{
cout << "输入" << M << "行"
<< N << "列矩阵" << endl;
for(int i=0; i<M; ++i)
for(int j=0; j<N; ++j)
cin >> a[i][j];
}
//比较两个矩阵是够相等
bool isEqual (int a[][N], int b[][N])
{
for(int i=0; i<M; ++i)
for(int j=0; j<N; ++j)
if(a[i][j] != b[i][j])//只要有一个元素不相等就返回错
return false;
return true;
}
//求两个矩阵的和
void matrixAdd( int a[][N], int b[][N], int c[][N])
{
for(int i=0; i<M; ++i)
for(int j=0; j<N; ++j)
c[i][j] = a[i][j] + b[i][j];
cout << endl;
}
//输出矩阵
void print(int a[][N])
{
for(int i=0; i<M; ++i)
{
for(int j=0; j<N; ++j)
cout << a[i][j] << " ";
cout << endl;
}
cout << endl;
}
void main()
{
int a[M][N], b[M][N], c[M][N];
input(a);
input(b);
if(isEqual(a,b) )
cout << "两个矩阵相等" << endl;
else
cout << "两个矩阵不相等" << endl;
matrixAdd(a, b, c);
print(a);
print(b);
cout << "两个矩阵的和为:" << endl;
print(c);
}
展开全部
#include<iostream.h>
int m,n;
void read(int a[][])
{
int i,j;
for (i=0;i<m;i++)
for(j=0;j<n;j++)
cin<<a[i][j];
}
int operator ==(int a[m][n],int b[m][n])
{
int f=1,i,j;
for (i=0;i<m;i++)
for(j=0;j<n;j++)
if (a[i][j]!=b[i][j]) f=0;
return f;
}
int add(int a[][],int b[][])
{
int c[m][n],i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
c[i][j]=a[m][n]+j[m][n];
}
void print(int a[][])
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<'\t';
cout<<endl;
}
void main()
{
cin<<m<<n;
int A[m][n],B[m][n],C[m][n];
read(A);
read(B);
if(A==B) cout<<"相等";
else cout<<"不相等";
C=add(A,B);
print(A);
print(B);
print(C);
}
int m,n;
void read(int a[][])
{
int i,j;
for (i=0;i<m;i++)
for(j=0;j<n;j++)
cin<<a[i][j];
}
int operator ==(int a[m][n],int b[m][n])
{
int f=1,i,j;
for (i=0;i<m;i++)
for(j=0;j<n;j++)
if (a[i][j]!=b[i][j]) f=0;
return f;
}
int add(int a[][],int b[][])
{
int c[m][n],i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
c[i][j]=a[m][n]+j[m][n];
}
void print(int a[][])
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<'\t';
cout<<endl;
}
void main()
{
cin<<m<<n;
int A[m][n],B[m][n],C[m][n];
read(A);
read(B);
if(A==B) cout<<"相等";
else cout<<"不相等";
C=add(A,B);
print(A);
print(B);
print(C);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询