Openjudge 1.8 多维数组

1.8.9 矩阵乘法

检查过程充满坎坷,只是因为有一个循环写成了这样:

for(int j=0;i<k;i++)

就不停的\(WA\)了,要注意

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <iostream>
using namespace std;
int a[105][105],b[105][105],c[105][105];//这里是int类型
int main(){
    int k,m,n;
    scanf("%d%d%d",&n,&m,&k);
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            scanf("%d",&a[i][j]);
        } 
    }
    for(int i=0;i<m;i++){
        for(int j=0;j<k;j++){
            scanf("%d",&b[i][j]);
        }
    }
    //for(int i=0;i<n;i++){
    //  for(int j=0;j<m;j++){
    //      printf("%d ",a[i][j]);
    //  } 
    //  printf("\n");
    //}
    //for(int i=0;i<m;i++){
    //  for(int j=0;j<k;j++){
    //      printf("%d ",b[i][j]);
    //  }
    //  printf("\n");
    //}
    for(int i=0;i<n;i++){
        for(int j=0;j<k;j++){
            for(int p=0;p<m;p++){
                //printf("a[i][p]=a[%d][%d]=%d,b[p][j]=b[%d][%d]=%d ",i,p,a[i][p],p,j,b[p][j]);
                c[i][j]+=a[i][p]*b[p][j];
                //printf("c[i][j]=c[%d][%d]=%d\n",i,j,c[i][j]);
            }
        }
    }
    for(int u=0;u<n;u++){
        for(int e=0;e<k;e++){
            printf("%d ",c[u][e]);
        }
        printf("\n");
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/liuziwen0224/p/11991546.html
1.8