我正在尝试将用户定义的二维数组从main传递给另一个函数,但是我遇到了很多错误。救命! 调用函数时发生错误。请告诉我在声明,调用和定义用户定义的函数时应该指定哪些参数。
#include<iostream>
using namespace std;
int transpose(int a[][int], int, int); //user-defined function
int main()
{
int size;
cout << "\nEnter the size of the matrix : "; //entering size of the
array
cin >> size;
int orignal[size][size]; //declaration of array
cout << "\nEnter the elements in the array : "; //entering elements in
array
for(int i = 0; i < size; i++)
{
for(int j = 0; j < size; j++)
{
cin >> orignal[i][j];
}
}
cout << "\nThe elements in the array are :\n"; //displaying elements in
array
for(int i = 0; i < size; i++)
{
for(int j = 0; j < size; j++)
{
cout << orignal[i][j] << " ";
}
cout << "\n";
}
transpose(orignal, size, size); //calling user defined function
return 0;
}
int transpose(int a[][int column], int row, column)
{
for(int i = 0; i < row; i++)
{
for(int j = 0; j < column; j++)
{
cout << a[i][j] << " ";
}
cout << "\n";
}
return 0;
}
答案 0 :(得分:0)
可以简单地完成
#include<iostream>
using namespace std;
int main()
{
int size;
cout<<"Enter size of Array :\n";
cin>>size;
int a[size][size],b[size][size];
cout<<"\nInput Matrix-A\n";
for(int i=0;i<size;++i)
{
for(j=0;pj<size;j++)
cin>>a[i][j];
cout<<endl;
}
cout<<"\nThe elements in Matrix A is :\n";
for(i=0;i<size;++i)
{
for(j=0;j<size;++j)
cout<<a[i][j];
cout<<endl;
}
for(i=0;i<size;++i)
{
for(j=0;j<size;j++)
b[i][j]=a[j][i];
}
cout<<"\nTranspose of Matrix is:\n";
for(i=0;i<size;++i)
{
for(j=0;j<size;++j)
cout<<" "<<b[i][j];
cout<<endl;
}
return 0;
}
为了将数组传递给函数, 第一种方式:
数组的接收参数本身可以声明为数组。
int main()
{
int age[10];
.
.
.
display(age);
return 0;
}
void display(int a[10])
{
}
第二种方式:
接收参数可以声明为未大小的数组。对于单个&gt;维数组,大小不是必需的,但在多维数组中, 第一维的大小不是必需的,但其他大小是必要的。
.
.
//Calling function remain same
.
.
void display(int a[])
{
........
}
第三种方式:
接收参数可以声明为指针
.
.
.
void display(int *a)
{ .....}
如果您不知道大小,则始终鼓励在函数内部输入数据到多维数组。在你的情况下,只需在函数内部输入或在编码中预先定义数组的大小
最好是在全局范围内声明数组,因此主要和用户定义的函数都可以访问它。