8

このコードは、タイトルに示されているコンパイルエラーをスローします。誰かが何を変更するか教えてもらえますか?

#include <iostream>

using namespace std;

int main(){

    int myArray[10][10][10];

    for (int i = 0; i <= 9; ++i){
        for (int t = 0; t <=9; ++t){            
            for (int x = 0; x <= 9; ++x){
                for (int y = 0; y <= 9; ++y){

                myArray[i][t][x][y] = i+t+x+y; //This will give each element a value

                      }
                      }
                      }
                      }

    for (int i = 0; i <= 9; ++i){
        for (int t = 0; t <=9; ++t){
            for (int x = 0; x <= 9; ++x){
                for (int y = 0; y <= 9; ++y){

                cout << myArray[i][t][x][y] << endl;

                    }
                    }
                    }                
                    }

    system("pause");

}

前もって感謝します

4

6 に答える 6

17

3次元配列にmyArray[10][10][10]4回添え字を付けていmyArray[i][t][x][y]ます。おそらく、配列に別の次元を追加する必要があります。Boost.MultiArrayのようなコンテナも検討してください。ただし、この時点ではおそらく頭に浮かぶでしょう。

于 2008-12-12T19:28:15.560 に答える
6

何を変更しますか?3 次元または 4 次元配列の問題は別として、マジック ナンバー (10 と 9) を取り除く必要があります。

const int DIM_SIZE = 10;
int myArray[DIM_SIZE][DIM_SIZE][DIM_SIZE];

for (int i = 0; i < DIM_SIZE; ++i){
    for (int t = 0; t < DIM_SIZE; ++t){            
        for (int x = 0; x < DIM_SIZE; ++x){
于 2008-12-12T20:00:41.657 に答える
3
int myArray[10][10][10];

する必要があります

int myArray[10][10][10][10];
于 2008-12-12T19:30:05.947 に答える
2

4つの参照解除を使用して3次元配列にアクセスしようとしています

必要なループは4つではなく3つだけです。int myArray[10][10][10][10];

于 2008-12-12T19:28:32.097 に答える