0

我正在为一堂课做作业,这是相当例行的。我以前在 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;
}
4

2 回答 2

5

数组的第一个维度是 ROWS,第二个维度是 COLUMNS,您的循环顺序错误。还要%lf在 printf 中打印双重使用格式说明符。我不明白为什么您printf在阅读 using 时决定使用 using cin,更好地使用cout以保持一致性,因为这是典型的打印方式C++

于 2013-02-04T12:07:42.540 回答
1

您正在使用:

array[i][j]);

对于“cin”和

array[j][i]);

打印:使用cout<<array[j][i]);

于 2013-02-04T12:09:45.823 回答