Matrix Multiplication

Time Limit:1000MS  Memory Limit:65536K
Total Submit:34 Accepted:9 

Description 

aJiao 讲完矩阵的运算后,WG同学为练习一下自己的C++,遂想用程序写一下矩阵的乘法。 
现有一个M行N列的矩阵A, 和一个N列M行的矩阵B。求C=A*B , 输出矩阵C。 



Input 

有多组输入,每组输入开始输入M, N (1<=M,N<=25); 
接下来M行,每行N个整数,即输入矩阵A。( 第i行第j个为A[i][j];) 
最后N行,每行M个整数,即输入矩阵B。 

输入以 0 0 结束。(即当M==0 && N==0时结束程序)。可采用下列框架: 
while(cin>>M>>N){ if (N==0 &&M==0) break; 
.... 




Output 

对应每组输入,输出矩阵C(显然是M行M列,每行的M个数字之间用空格隔开, 但是注意,每行最后一个数字不要带空格)。 
每组数据后,请带一空行,如sample out。 
最后的 0 0 不用处理。 


Sample Input 


1 1

10 

2 3
9 10 9 
9 11 10 
13 12 
8 14 
9 7 

0 0 


Sample Output 


90

278 311
295 332
我的程序如下!怎么老是PE啊!格式那里错了?大家指点一下!

#include<iostream>
using namespace std;
int main(){
    int M,N;
    while(cin>>M>>N&&!(M==0&&N==0)){ 
                                     int a[M][N],b[N][M],c[M][M]; 
                      for(int i=0;i<M;i++)
                      for(int j=0;j<N;j++){
                      a[i][j]=0;
                      b[i][j]=0;
                      }
                      for(int i=0;i<M;i++)
                      for(int j=0;j<M;j++)
                      c[i][j]=0;
                      
                      if (N==0&&M==0) break;
                      for(int i=0;i<M;i++)
                              for(int j=0;j<N;j++)
                              cin>>a[i][j];
                      for(int i=0;i<N;i++)
                              for(int j=0;j<M;j++)
                              cin>>b[i][j];
                              cout<<endl;
                      if(M==1&&N==1)
                      cout<<a[0][0]*b[0][0]<<endl;
                      else{        
                      for(int i=0;i<M;i++)
                      for(int j=0;j<M;j++)
                      for(int k=0;k<N;k++){
                              c[i][j]+=a[i][k]*b[k][j];
                              }
                      for(int i=0;i<M;i++){
                      for(int j=0;j<M;j++)
                      cout<<c[i][j]<<"  ";
                      cout<<endl;
                      }
                      }  
                      }
    return 0;
    }