2016-04-03 33 views
-1

Matrisleri çarpıyorum ve tanımlanamayan referansı aktarma işlevine dönüştürüyorum (.....) Lütfen bana nerede yanlış olduğumu söyle.Tanımsız Referans işlev Transverse

 #include<iostream> 
    #include<fstream> 
    using namespace std; 
    void transpose(int arr[][10],int trans[][10],int ar[][1],int,int); 
    void output(int,int); 
    int main() 
    { 
    int array[10][10]={0}; 
    int trans[10][10]={0}; 
    int array5[3][1]={4,5,6}; 

    ifstream input("matrix.txt"); 
    int rows=0,col=0,num=0; 
    char ch; 
    int x=0,z=0; 
    //Finding Numbers of rows and columns 

     for(col=0;ch!='\n';col++) 
     { 
      input>>array[0][col]; 
      input.get(ch); 

     } 
     input.close(); 
     ifstream input1("matrix.txt"); 
     while(!input1.eof()) 
     { 

      input1>>array[z][x]; 
      input1.get(ch); 

      if(ch=='\n') 
      { 
      rows++; 
      z++; 
      } 
      x++; 

     } 
     rows=rows+1; 
     cout<<"Oye"<<rows<<" "<<col<<endl;; 


     input.close(); 

     ifstream srch("matrix.txt"); 
      for(int r=0;r<rows;r++) 
      { 
      for(int c=0;c<col;c++) 
      { 
       srch>>array[r][c]; 
       cout<<array[r][c]<<" "; 




      } 
      cout<<endl; 
     } 
     cout<<endl<<endl; 


     cout<<"=================================================" <<endl; 
     transpose(array,trans,array5,rows,col); 
     input.close(); 

    } 

    void transpose(int arr[][10],int trans[][10],int ar[][10],int row,int col) 
    { 
     int x=0,y=0,flag=0,row1=0,j=0; 


      for(row1=0;row1<row;row1++) 
      { 
       trans[row][j]=0; 
       for(j=0;j<col;j++) 
       { 
        for(int k=0;k<col;k++) 
        trans[row][j]=trans[row][j]+(arr[row1][j]*ar[k][j]); 

       } 
      } 

      for(int r=0;r<row;r++) 
      { 
      for(int c=0;c<col;c++) 
      { 

       cout<<trans[r][c]<<" "; 




      } 
      cout<<endl; 
      } 
     } 
+0

deneyin ana işlevi yukarıdaki tüm 'tranpose' işlevi koyarak. Başka bir hatadan ötürü bu şekilde benim için derler. –

cevap

1
: Ben bir hata burada

bulamıyorum neden benim kod dağınık ama ben acele duyuyorum ve aynı dosya üzerinde düzenlemeye devam yüzden bu ara sınav için hazırlanıyorum biliyorum belki de bu benim kodudur

İşlev prototipleri eşleşmiyor.

void transpose(int arr[][10],int trans[][10],int ar[][1],int,int); 
void transpose(int arr[][10],int trans[][10],int ar[][10],int row,int col) 
                 ^^ 

Ve neden int array5[3][1]={4,5,6}; yazıyorsunuz? Sadece daha int array5[3]={4,5,6}; yapabilir ve fonksiyon aşağıdaki gibi görünecektir:

void transpose(int arr[][10],int trans[][10],int ar[],int row,int col); 
+0

çünkü sadece basit bir örnek olarak deniyorum. Daha sonra bu 1D dizisini 2D Array olarak yapacağım. Btw, Cevabınız için teşekkürler. –