【发布时间】:2021-05-08 14:08:22
【问题描述】:
我有一个二维数组和一个一维向量。 我的任务是编写一个程序,分配给向量的第 i 个分量
- 矩阵第i行的第一个元素,如果该行至少有一个负元素,
- 第 i 行的最后一个元素,如果没有的话。 这是我所做的。
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double matrix[4][4] = {{1.3, -5.0, 4.4, 3.0}, {7.0, 4.0, 2.01, 1.0}, {7.0, 12.3, -8.7, 9.0}, {4.0, 1.0, 33.0, 63.3}};
double vector[4];
for(int i = 0; i < 4; i++) {
bool rowHasNegNum = false;
for(int j = 0; j < 4; i++) {
if (matrix[i][j] < 0) {
rowHasNegNum = true;
}
}
if(rowHasNegNum) {
vector[i] = matrix[i][0];
} else {
vector[i] = matrix[i][3];
}
}
for(int i=0; i<4; i++) {
cout<<vector[i]<<"\t";
}
cout<<endl;
return 0;
}
但是当我编译程序时,我得到以下错误。有什么问题?
Segmentation fault (core dumped)
【问题讨论】:
-
不相关,但使用
vector作为变量名是个糟糕的主意。 -
@KamilCuk 非常感谢,我更正了它,我的程序按预期工作:)
-
@M.A 谢谢你的建议,确实......
-
@M.A 强烈不同意。它可以是一个完全合适的变量名。
-
@M.A 在这种情况下,问题毫无疑问是
using namespace std,而不是使用完全合理的名称。
标签: c++ algorithm loops for-loop multidimensional-array