不明白怎么才能弄成題目那樣,自己就寫了一共3階的矩陣,但還是有問題,請各位大神提點一下

uj5u.com熱心網友回復:
把陣列傳進函式里,注意陣列傳入函式會退化為指標 ,所以要把大小也傳進去uj5u.com熱心網友回復:
供參考:#include<iostream.h>
#include <iomanip.h>
using namespace std;
void sum(int *a,int *b,int *c)
{
int m,n;
for(n=0;n<3;n++)
for(m=0;m<3;m++)
*(c++) = *(a++) + *(b++);
}
int main()
{
int i,j;
int a[3][3],b[3][3],c[3][3];
cout<<"A為三階矩陣"<<"請輸入A[3][3]的值:"<<endl;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>a[i][j];
cout<<"B為三階矩陣"<<"請輸入B[3][3]的值:"<<endl;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>b[i][j];
sum(a[0],b[0],c[0]);
cout<<"矩陣A[3][3] + B[3][3] ="<<endl;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cout<<setw(3)<<c[i][j]<<(j!=2?' ':'\n');
return 0;
}
//A為三階矩陣請輸入A[3][3]的值:
//1 2 3 4 5 6 7 8 9
//B為三階矩陣請輸入B[3][3]的值:
//1 2 3 4 5 6 7 8 9
//矩陣A[3][3] + B[3][3] =
// 2 4 6
// 8 10 12
// 14 16 18
//請按任意鍵繼續. . .
uj5u.com熱心網友回復:
#include <iostream>
using namespace std;
//生成矩陣
int** creatInt(size_t m, size_t n)
{
int** a = new int* [m]; //生成m行
for (size_t i = 0; i < m; ++i)
{
a[i] = new int[n]; //每行n個int
}
return a;
}
//初始化矩陣
void init(int** a, size_t m, size_t n)
{
for (size_t i = 0; i < m; ++i)
{
for (size_t j = 0; j < n; ++j)
{
a[i][j] = rand() % 99 + 1;
}
}
}
//輸出矩陣
void Print(int** a, size_t m, size_t n)
{
for (size_t i = 0; i < m; ++i)
{
for (size_t j = 0; j < n; ++j)
{
cout << a[i][j] << "\t";
}
cout << endl;
}
}
int main()
{
size_t m, n;
cin >> m >> n;
int** A = creatInt(m, n);
int** B = creatInt(m, n);
int** C = creatInt(m, n);
srand(time(NULL));
init(A, m, n);
init(B, m, n);
for (size_t i = 0; i < m; ++i)
{
for (size_t j = 0; j < n; ++j)
{
C[i][j] = A[i][j] + B[i][j];
}
}
cout << "矩陣A:\n";
Print(A, m, n);
cout << "\n矩陣B:\n";
Print(B, m, n);
cout << "\n矩陣C:\n";
Print(C, m, n);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/282935.html
標籤:C++ 語言
上一篇:c++小白求助
下一篇:求助C#將功能寫成類
