close

#include <stdio.h>
#include <stdlib.h>
#define row    5
#define column 5
/*
  void multiple(int A[row][column], int B[row][column], int C[row][column],int m,int n) ;       
  // C = AXB   https://zh.wikipedia.org/wiki/%E7%9F%A9%E9%99%A3%E4%B9%98%E6%B3%95

*/


int GiveValue(int A[row][column], int m, int n)
{    
    for(int i=0;i<m;i++) 
       for(int j=0;j<n;j++) A[i][j]=rand()%3;
    return 1;

int PrintValue(int A[row][column], int m, int n)
{
    for(int i=0;i<m;i++) {
         for(int j=0;j<n;j++) {
              printf("%3d ",A[i][j]);   
         }
         printf("\n",i,A[i]);
    }
    return 1;

 
int RowCol(int ci,int cj,int A[row][column],int B[row][column], int m, int n) // C[ci][cj]
{
    int total=0;
   
         for(int k=0;k<n;k++) {
            total= total + A[ci][k]*B[k][cj]  ;
         }
       
    return total;
    
}

void multiple(int A[row][column], int B[row][column], int C[row][column],int m,int n) 
{
     for(int i=0;i<m;i++) {
         for(int j=0;j<n;j++) {
              C[i][j]=RowCol(i,j,A,B, m, n);
         }
         
    }
}

int main(){
    
    int A[row][column],B[row][column],C[row][column];
    GiveValue(A,row,column);  PrintValue(A,row,column); printf("\n\n");
    GiveValue(B,row,column);  PrintValue(B,row,column); printf("\n\n");
   
    multiple(A, B, C, row,column) ; 
    PrintValue(C,row,column);
    system("pause");
    return 1;
}
 

arrow
arrow

    tatar 發表在 痞客邦 留言(0) 人氣()