c++ - 为什么我从 4 中减去 19 得到的返回值为 1
问题描述
这是我的函数,真的很乱,只是想弄清楚如何得到答案,然后优化它。
但基本上你必须减去矩阵中两条对角线中每个字符的总和。
r 是矩阵的大小(fe 3 = 3 行和 3 列)
然后输入每个字符。所以输入应该看起来像
3
11 2 4
4 5 6
10 8 -12
所以最后,我得到 leftD = 4 和 rightD = 19。
abs(4-19) 应该是 15,但由于某种原因,我一直得到 1,即使我尝试了一百万个不同的版本。
(这是来自hackerrank的问题)
using namespace std;
int diagonalDifference(vector<vector<int> > arr)
{
int r;
int c;
int leftD = 0;
int rightD = 0;
int diff;
cin >> r;
int x = 0;
for (int i = 0; i < r; i++) {
arr.push_back(vector<int>());
for (int j = 0; j < r; j++) {
cin >> x;
arr[i].push_back(x);
}
}
for (int i = 0; i < r; i++) {
leftD += arr[i][i];
}
for (int i = 1; i < r - 1; i++) {
rightD += arr[0][r - 1] + arr[i][i] + arr[r - 1][0];
}
diff = abs(leftD - rightD);
return diff;
}
int main()
{
vector<vector<int> > arr;
diagonalDifference(arr);
cout << diagonalDifference;
}
解决方案
您需要保存从函数返回的值。目前你只是丢弃它。
尝试:
int result = diagonalDifference(arr);
cout << result;
推荐阅读
- list - 批处理将列出文件夹中的文件,问我是哪一个,当我选择它时会打开它
- python - Python:在 1 秒内运行 N 次函数
- django - Django 测试客户端在尝试从谷歌云存储获取公共文件时给出 404。使用请求库时工作正常
- android - 我应该将哪个 Xamarin.Android apk 文件提供给 beta 测试人员
- android - Kotlin Coroutine 不执行多个挂起函数
- python - R:使用made函数删除时间序列季节性
- python - 如何根据索引删除部分列表
- python - 模板中的 Django ForeinKey
- ssh - 使用 WinSCP 命令将文件上传到 SFTP 时出现“主机密钥与配置的密钥不匹配”
- python - 如何在屏幕上显示键盘?