マトリックス積
Description入力m×nの整数行列A、更に1つのnを入力する×mの整数行列B.計算C=A×B. Inputはmとn(mとnともに≦10)を先に入力し、もう1行後にmを入力する×nの整数行列Aを入力し、次にnを入力する×mの整数行列B.各列のデータはスペースで区切られ、各行のデータはリターンで区切られます.Output計算A×B→C、出力マトリクスC.Sample Input 2 3 1 2 3 2 4 6 1 2 3 4 5 6 Sample Output 22 28 44 56
方法1
方法2
方法1
#include
#include
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int m,n;
while(scanf("%d %d",&n,&m)!=EOF&&n<=10&&m<=10)
{
int a[11][11];
int b[11][11];
int c[11][11];
int i,j;
for(i=0;i<=10;i++){
for(j=0;j<=10;j++){
a[i][j]=0;
b[i][j]=0;
c[i][j]=0;
}
}
for(i=0;i<=n-1;i++){
for(j=0;j<=m-1;j++){
scanf("%d",&a[i][j]);
}
}
for(i=0;i<=m-1;i++){
for(j=0;j<=n-1;j++){
scanf("%d",&b[i][j]);
}
}
int k;
//
// for(i=0;i<=n-1;i++){
//
// for(j=0;j<=m-1;j++){
// c[i][j]=c[i][j]+b[j][i]*a[i][j];
//
// }
//
// }
//
for (i = 0; i
方法2
#include
#include
using namespace std;
#define X 3
#define Y 2
#define Z 4
int main()
{
int i, j, k;
int a[X][Y], b[Y][Z], c[X][Z];
for (i = 0; i < X; i++) // a,3 2
for (j = 0; j < Y; j++)
scanf_s("%d", &a[i][j]);
for (i = 0; i < Y; i++) // b,2 4
for (j = 0; j < Z; j++)
scanf_s("%d", &b[i][j]);
for (i = 0; i < X; i++) // c,3 4
for (j = 0; j < Z; j++)
c[i][j] = 0;
for (i = 0; i