函数调用的问题
报错:第19行, cannot convert 'int (*)' to 'int*' for argument '1' to 'int sum_all(int*)'题目要求:编写一个函数求4*4二维数组周边元素的和
*/
/*
分析:
要想获得周围一圈的数值和,可以通过把所有数组加总后减去中间的四个数字来间接解决;
*/
# include <iostream>
using namespace std;
// 声明
int sum_all(int arr[]);
// 主函数部分
int main()
{
int arr = {{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4}};
// 调用求和函数
cout<<"求和结果为:"<<sum_all(arr)<<endl;
}
// 求和函数
int sum_all(int arr)
{
int sum;
int total = 0;
int circle = 0;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
total += arr;
}
}
for (int i = 1; i <= 2; i++)
{
for (int j = 1; j <= 2; j++)
{
circle += arr;
}
}
sum = total - circle;
return sum;
}
/*
分析:
要想获得周围一圈的数值和,可以通过把所有数组加总后减去中间的四个数字来间接解决;
*/
# include <iostream>
using namespace std;
// 声明
int sum_all(int (*arr));//函数不能传多维数组,应该传多维数组的指针
// 主函数部分
int main()
{
int arr = { {1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4} };
// 调用求和函数
cout << "求和结果为:" << sum_all(arr) << endl;
}
// 求和函数
int sum_all(int (*arr))//函数不能传多维数组,应该传多维数组的指针
{
int sum;
int total = 0;
int circle = 0;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
total += arr;
}
}
for (int i = 1; i <= 2; i++)
{
for (int j = 1; j <= 2; j++)
{
circle += arr;
}
}
sum = total - circle;
return sum;
} // 声明
int sum_all(int arr[]);
形参这儿不对,这个写法是一维数组了,你要传入的是二维数组,应该这样写
// 声明
int sum_all(int arr[]); 非常感谢深夜回复,祝您生活愉快! chxchxkkk 发表于 2020-4-12 00:37
// 声明
int sum_all(int arr[]);
形参这儿不对,这个写法是一维数组了,你要传入的是二维数组,应该这 ...
谢谢,看来这一块得去钻研一下了
页:
[1]