我正在为一个班级做一个任务,这是相当常规的。我以前用Java做过这个,所以对我来说并不是全新的,但是,我不完全确定这里有什么问题。
基本上我需要输入几行/列的信息,然后打印列的总和,所有这些并不是特别困难。但是,每次打印数组的内容时,无论如何都是1。
我不确定什么是错的,如果有人能告诉我为什么我会欣赏它。
哦,忘了提,我正在使用 g ++ 进行编译。
#include <iostream>
#include <cstdio>
using namespace std;
const int ROWS = 4;
const int COLUMNS = 3;
void setupMatrix() {
// Setup matrix
double array[ROWS][COLUMNS];
// Needed? Wouldn't think so.
// for (int i = 0; i < COLUMNS; i++) {
// for (int j = 0; j < ROWS; j++) {
// array[i][j] = 0.0;
// }
// }
// Get array information from user
for (int i = 0; i < COLUMNS; i++) {
printf("Row %d\n", (i + 1));
for (int j = 0; j < ROWS; j++) {
printf("Column %d ", (j + 1));
cin >> array[i][j];
}
}
// Print array so I can see what's up first
for (int i = 0; i < COLUMNS; i++) {
// Row & column separation
printf("\n");
for (int j = 0; j < ROWS; j++) {
printf("%d ", array[j][i]);
}
}
}
int main () {
setupMatrix();
return 0;
}
答案 0 :(得分:5)
数组的第一个维度是ROWS,第二个是COLUMNS,循环顺序错误。还要在printf中打印双用格式说明符%lf
。我不明白为什么您在使用printf
阅读时决定使用cin
,更好地使用cout
来保持一致性,因为这是在C++
<中打印的典型方式/ p>
答案 1 :(得分:1)
您正在使用:
array[i][j]);
表示“cin”和
array[j][i]);
用于打印:使用cout<<array[j][i]);