OJ系统C语言练习第六天

第一题

<span class='yzk_title_99'>C语言OJ练习记录(六)</span>-一只小白
#include "stdio.h"

int main(int argc, char const *argv[])
{
    int m,n,s;
    while(scanf("%d%d%d", &m,&n,&s)!=EOF){
        int a[m][n];
        int b[n][s];
        int c[m][s];
        for(int i = 0; i < m; i++){
            for(int y = 0; y < n; y++){
                scanf("%d", &a[i][y]);
            }
        }
        for(int i = 0; i < n; i++){
            for(int y = 0; y < s; y++){
                scanf("%d", &b[i][y]);
            }
        }
        //最重要的计算
        //用A的第i行分别和B的第j列的各个元素相乘求和,求得C的第i行j列的元素,这种算法中,B的访问是按列进行访问的.
        for(int i = 0; i < m; i++){
            for(int y = 0; y < s; y++){
                int d = 0;
                for(int k = 0; k < n; k++){
                //注意这里
                    d = d + a[i][k] * b[k][y];
                }
                c[i][y] = d;
            }
        }
        for(int i = 0; i < m; i++){
            for(int y = 0; y < s; y++){
                printf("%d", c[i][y]);
                if(y < s-1){
                    printf(" ");
                }
            }
            printf("\n");
        }       
    }
    return 0;
}