c++ - 在 C++ 函数中转换二维数组时出错
问题描述
#include<iostream>
using namespace std;
int add(int x[2][2], int y[2][2],int z[2][2]);
int main()
{
int a[2][2], b[2][2];
cout << "Enter two matrices to add them " << endl;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
cin >> a[i][j];
}
}
cout << endl;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
cin >> b[i][j];
}
}
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
cout<<add(a[2][2],b[2][2])<<endl;
}
}
return 0;
}
int add(int x[2][2], int y[2][2],int z[2][2])
{
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
z[i][j] = x[i][j] + y[i][j];
}
}
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
cout << z[i][j];
}
cout << endl;
}
}
我想构建一个从用户那里获取值然后添加并在控制台屏幕上显示它们的函数,它可以很容易地完成,但我想做一个函数。我已经构建了上面显示的一个,但它没有执行它向我显示从 int 到 int 的无效转换的错误。
解决方案
cout<<add(a[2][2],b[2][2])<<endl;
应该
cout<<add(a,b)<<endl;
这是一个很常见的误解。要引用数组,请使用数组的名称(即a
或b
)而不是数组及其维度(即a[2][2]
或b[2][2]
)。只有在声明数组时才需要数组的维度,而不是在使用数组时。
另外(正如 fabian 指出的那样),您编写add
了三个参数,但您只用两个参数调用它。也许你打算让z
本地人add
喜欢这个
int add(int x[2][2], int y[2][2])
{
int z[2][2];
...
现在add
只有两个参数。
推荐阅读
- java - java中的实例变量是否不允许某些访问修饰符?
- javascript - 从另一个分片缓存自定义表情符号
- swift - 我无法弄清楚我在 Swift 中使用 SpreadsheetView 的问题
- arduino - 多个具有相同执行时间的滚珠丝锥联动步进电机的并行访问
- android - 由 bundletool 生成后 apk 不安装
- django - 编辑模型的现有实例
- javascript - 使用 Node JS 将 txt 文件转换为 json
- wordpress - 来自页面隐藏字段的联系表格 7 CF7 收件人电子邮件
- python - 在张量流中训练模型时的时代问题
- python - 根据列的条件组合熊猫行(矢量化)