在 2D 数组中乘以元素
Multiplying elements in 2d array
我的程序的最后一行有问题。我不知道如何将程序中的最后一行乘以第一行。乘法表通过将第一行乘以第二行、第二行乘以第三行来工作,依此类推。
int main() {
int temp;
const int row = 10;
const int col = 5;
int arr[row][col];
int arr2[10][5];
srand(((unsigned)time(0)));
cout << "Original" << endl;
for (int i = 0; i<10; i++) {
for (int j = 0; j<5; j++) {
temp = 1 + rand() % 99;
arr[i][j] = temp;
int arr2 = arr[i][j];
cout << setw(4) << arr2<< setw(5) << " | ";
}
cout << endl;
}
cout << "nnMultiplied rows" << endl;
for (int i = 0; i<row; i++) {
for (int j = 0; j < col; j++) {
if (i < 9)
arr[i][j] *= arr[i + 1][j];
else if (i == 9)
cout << setw(4) << arr[i][j]<< setw(5) << " | ";
}
cout << endl;
}
return 0;
}
(这是我遇到问题的最后一个 else 语句(我尝试了 arr[i][j]=arr[1][i]*arr[9][j]但这没有用
首先,回答您的问题。您实际上无法将最后一行与第一行相乘,因为当为 i = 0 和 j = 0 执行arr[i][j] *= arr[i + 1][j];
行时,您已经覆盖了它
天真的解决方案是将乘法数字存储在新数组中,或者不覆盖旧数组而只打印计算值。即使这样,您也必须进行其他修复,但我不会真正为您做功课。
仅供参考,如果您要将其交给讲师,他们会指出许多问题,例如您定义了 const int row 和 col,但您只使用它们一次。您应该只使用这些变量;因此,与其键入 10、5 和 9 之类的内容,不如键入 row、col、row -1。
此外,第一个 arr2 变量未使用,循环中的变量可能很容易不存在,您的代码将cout << setw(4) << arr[i][j]<< setw(5) << " | ";
我可以继续,但我会让你去找剩下的......祝你好运。
相关文章:
- 检查 2D 网格的某个元素是否与另一个元素共享对角线、水平线或垂直线
- 如何创建一个所有行大小不同的 2D 数组,并且用户将指定每行将有多少个元素?
- 交换函数不是在 C++ 中交换 2D 数组的元素
- 如何将所有元素初始化为 -1 的 2D 数组?
- 如何在 2d 矢量 c++ 中复制元素并将其放在原始元素旁边
- 如何使用指针C++将元素从2D数组复制到1D数组
- 如何在类中制作 2D 数组元素,然后在其构造函数中指定其维度?
- 如何计算大小为 1000 x 1000 的 2D 数组中 2 个元素之间的步幅?C++
- 是否可以在并行区域中为共享 2D 数组创建选定元素的线程本地副本?(共享,私有,障碍:OPenMP)
- 查找 2D 向量的位置,该向量是类C++的一个元素
- Getter 函数,用于在 2d 数组是类的数据成员时检索 2d 数组元素
- 创建 2D 数组类:如何访问 2D 数组类(如 array[x][y))中的元素
- 返回C 中2D阵列的对角线元素总和
- 如何使用 cpp 消除 2d 数组中的边框元素
- 如何在 2D 字符数组中打印 [x][y] 元素的地址?(C++)
- 排列 2D 数组中的元素
- 从2D矢量中找出最小尺寸的向量元素的更好方法
- 静态2D数组,添加元素
- 从2D数组C 中删除单个元素
- 分割故障:从2D矢量中随机删除元素