標題:
610 矩陣乘積
[打印本頁]
作者:
陳曜誌
時間:
2024-9-19 13:13
標題:
610 矩陣乘積
1. 題目說明:
請依下列題意進行作答,使輸出值符合題意要求。
2. 設計說明:
請撰寫一程式,讓使用者建立兩個矩陣,先輸入兩個正整數a、b,代表第一個矩陣為a x b矩陣,接著再輸入a x b矩陣的元素;第二個矩陣作法相同,最後輸出兩矩陣相乘的結果,同一列的矩陣元素請使用半形空格隔開,若無法相乘,請輸出「error」。
矩陣乘法:若A是mxn的矩陣,B是nxp的矩陣,則它們的乘積AB是 mxp的矩陣。
公式:
提示:若使用 Java 語言答題,請以「JP」開頭命名包含 main 靜態方法的 class,評測系統才能正確評分。
3. 輸入輸出:
輸入說明
兩組矩陣維度及矩陣元素
輸出說明
兩矩陣相乘的結果
範例輸入1
2 3
1 2 3
4 5 6
3 2
1 2
3 4
5 6
範例輸出1
22 28
49 64
範例輸入2
2 1
5
5
2 3
4 5 6
7 8 9
範例輸出2
error
幫助理解題意的補充範例:
範例輸入3
2 3
1 2 3
4 5 6
3 4
1 2 3 4
2 3 4 1
3 4 1 2
範例輸出3
14 20 14 12
32 47 38 33
610 矩陣乘積.xlsx
本帖隱藏的內容需要回復才可以瀏覽
作者:
何權晉
時間:
2024-10-11 20:30
本帖最後由 何權晉 於 2024-10-11 20:57 編輯
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a1,b2,a2,b2;
cin>>a1>>b1;
int arr1[a1][b1];
for(int i=0;i<a1;i++)
for(int j=0;j<b1;j++)
cin>>arr1[i][j];
int arr2[a2][b2]
for(int i=0;i<a2;i++)
for(int j=0;j<b2;j++)
cin>>arr2[i][j];
if(b1!=a2)
cout<<"error";
else
{
for(int i=0;i<a1;i++)
for(int j=0;j<b2;j++)
{
int sum=0;
for(int k=0;k<b1;k++)
sum+=arr1[i][k]*arr2[k][j];
if(j!=0)
cout<<" ";
cout<<sum;
}
cout<<endl;
}
return 0;
}
複製代碼
作者:
蔡沛倢
時間:
2024-10-11 20:53
#include<bits/stdc++.h>
using namespace std;
int a1,a2,b1,b2;
int main()
{
cin>>a1>>b1;
int arr1[a1][b1];
for(int i=0;i<a1;i++)
{
for(int j=0;j<b1;j++)
{
cin>>arr1[i][j];
}
}
cin>>a2>>b2;
int arr2[a2][b2];
for(int i=0;i<a2;i++)
{
for(int j=0;j<b2;j++)
{
cin>>arr2[i][j];
}
}
if(b1!=a2)
{
cout<<"error"<<'\n';
}
else
{
for(int i=0;i<a1;i++)
{
for(int j=0;j<b2;j++)
{
int sum=0;
for(int k=0;k<b1;k++)
{
sum+=arr1[i][k]*arr2[k][j];
}
if(j!=0)
{
cout<<" ";
}
cout<<sum;
}
cout<<endl;
}
}
return 0;
}
複製代碼
作者:
黃翊豪
時間:
2024-10-11 20:54
#include<bits/stdc++.h>
using namespace std;
int a1,b1,a2,b2;
int main()
{
cin>>a1>>b1;
int arr1[a1][b1];
for(int i=0;i<a1;i++)
for(int j=0;j<b1;j++)
{
cin>>arr1[i][j];
}
cin>>a2>>b2;
int arr2[a2][b2];
for(int i=0;i<a2;i++)
for(int j=0;j<b2;j++)
{
cin>>arr2[i][j];
}
if(b1!=a2)
{
cout<<"error"<<endl;
}
else
{
for(int i=0;i<a1;i++)
{
for(int j=0;j<b2;j++)
{
int sum=0;
for(int k=0;k<b1;k++)
sum+=arr1[i][k]*arr2[k][j];
if(j!=0)
cout<<" ";
cout<<sum;
}
cout<<endl;
}
}
return 0;
}
複製代碼
作者:
田家齊
時間:
2024-10-11 20:54
本帖最後由 田家齊 於 2024-10-18 19:34 編輯
#include <bits/stdc++.h>
using namespace std;
int a1,b1,a2,b2;
int main()
{
cin>>a1>>b1;
int arr1[a1][b1];
for(int i=0; i<a1; i++)
for(int j=0; j<b1; j++)
cin>>arr1[i][j];
cin>>a2>>b2;
int arr2[a2][b2];
for(int i=0;i<a2;i++)
for(int j=0;j<b2;j++)
cin>>arr2[i][j];
if(b1!=a2)
{
cout<<"error"<<endl;
}else
{
for(int i=0;i<a1;i++)
{
for(int j=0;j<b2;j++)
{
int sum=0;
for(int k=0;k<b1;k++)
sum+=arr1[i][k]*arr2[k][j];
if(j!=0)
cout<<" ";
cout<<sum;
}
cout<<endl;
}
}
return 0;
}
複製代碼
作者:
吳侑諶
時間:
2024-10-11 20:55
#include<bits/stdc++.h>
using namespace std;
int a1, b1, a2, b2;
int main()
{
cin>>a1>>b1;
int arr1[a1][b1];
for(int i=0; i<a1; i++)
for(int j=0; j<b1; j++)
cin>>arr1[i][j];
cin>>a2>>b2;
int arr2[a2][b2];
for(int i=0; i<a2; i++)
for(int j=0; j<b2; j++)
cin>>arr2[i][j];
if(b1!=a2)
{
cout<<"error"<<endl;
}else
{
for(int i=0; i<a1; i++)
{
for(int j=0; j<b2; j++)
{
int sum=0;
for(int k=0; k<b1; k++)
sum+=arr1[i][k]*arr2[k][j];
if(j!=0)
cout<<" ";
cout<<sum;
}
cout<<endl;
}
}
return 0;
}
複製代碼
作者:
聿均
時間:
2024-10-11 20:58
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a1,b1,a2,b2;
cin>>a1>>b1;
int arr1[a1][b1];
for(int i=0;i<a1;i++)
for(int j=0;j<b1;j++)
cin>>arr1[i][j];
cin>>a2>>b2;
int arr2[a2][b2];
for(int i=0;i<a2;i++)
for(int j=0;j<b2;j++)
cin>>arr2[i][j];
if(b1!=a2)
cout<<"error";
else{
for(int i=0;i<a1;i++){
for(int j=0;j<b2;j++){
int sum=0;
for(int k=0;k<b1;k++)
sum+=arr1[i][k]*arr2[k][j];
if(j!=0)
cout<<' ';
cout<<sum;
}
cout<<endl;
}
}
return 0;
}
複製代碼
作者:
郭又瑄
時間:
2024-10-17 20:56
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a1,b1,a2,b2;
cin>>a1>>b1;
int arr1[a1][b1];
for(int i=0;i<a1;i++)
for(int j=0;j<b1;j++)
cin>>arr1[i][j];
cin>>a2>>b2;
int arr2[a2][b2];
for(int i=0;i<a2;i++)
for(int j=0;j<b2;j++)
cin>>arr2[i][j];
if(b1!=a2)
cout<<"error";
else{
for(int i=0;i<a1;i++){
for(int j=0;j<b2;j++){
int sum=0;
for(int k=0;k<b1;k++)
sum+=arr1[i][k]*arr2[k][j];
if(j!=0)
cout<<' ';
cout<<sum;
}
cout<<endl;
}
}
return 0;
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2