C++ 函数转置的未定义引用

C++ 函数转置的未定义引用,c++,C++,我将矩阵相乘,并将未定义的引用抛出函数转置(…) 请告诉我哪里错了。 我知道我的代码乱七八糟,但我正在准备期中考试,这就是为什么我在赶时间,继续编辑同一个文件,也许这就是为什么我找不到错误 这是我的密码: #include<iostream> #include<fstream> using namespace std; void transpose(int arr[][10],int trans[][10],int ar[][1],int,in

我将矩阵相乘,并将未定义的引用抛出函数转置(…) 请告诉我哪里错了。 我知道我的代码乱七八糟,但我正在准备期中考试,这就是为什么我在赶时间,继续编辑同一个文件,也许这就是为什么我找不到错误

这是我的密码:

     #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;
            }
         }
#包括
#包括
使用名称空间std;
无效转置(int-arr[][10],int-trans[][10],int-ar[][1],int,int);
无效输出(int,int);
int main()
{
int数组[10][10]={0};
int trans[10][10]={0};
int-array5[3][1]={4,5,6};
ifstream输入(“matrix.txt”);
int rows=0,col=0,num=0;
char ch;
int x=0,z=0;
//查找行数和列数
for(col=0;ch!='\n';col++)
{
输入>>数组[0][col];
输入。获取(ch);
}
input.close();
ifstream input1(“matrix.txt”);
而(!input1.eof())
{
input1>>数组[z][x];
输入1.get(ch);
如果(ch='\n')
{
行++;
z++;
}
x++;
}
行=行+1;

cout函数原型不匹配

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)
                                                      ^^
为什么要编写
int-array5[3][1]={4,5,6};
?只需将其设置为
int-array5[3]={4,5,6};
,函数如下所示:

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

试着把整个
transpose
函数放在主函数上面。除了一些其他错误外,它对我来说是这样编译的。因为我只是作为一个简单的例子来尝试。稍后我将把这个1D数组变成2D数组。顺便说一句,谢谢你的回答。