0

コードはそのように見えます

#include <cstdlib>
#include <iostream>

using namespace std;
#define n 3;
#define m 4;

int main(int argc, char* argv[])
{
    int arr[n][m];
    bool f=true;
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
            cin>>arr[i][j];
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
            if(arr[i][j]!=a[0][j])
                f=false;
    if(f)
            cout<<"Setirler eynidir.";
    else 
        cout<<"muxtelifdir";
    system("pause");
    return 0;
}

大量のエラーを取得する

ここに画像の説明を入力

問題のあるコードは見当たりません。助言がありますか?私は何が欠けていますか?

4

4 に答える 4

8

#defines は で終わっていない;ので、実際にはセミコロンもそこに貼り付けられます。

int arr[3;][4;];

これは無効なコードです。

疫病のようなプリプロセッサを避けることを常に覚えておいてください。

于 2012-06-28T19:22:17.193 に答える
4

はプリプロセッサ ディレクティブであるため#define、配列の宣言に誤りがあります。

#define n 3;
#define m 4;

int arr[m][n];

// This translates into 
int arr[3;][4;];

;定義の後にを削除することで修正できます。

#define n 3
#define m 4

またはさらに良い:

static const size_t n = 3;
static const size_t m = 3;

上記のように、nまたはを使用できる他の場所で型の安全性が得られますm

于 2012-06-28T19:22:30.780 に答える
2
#define 

ステートメントの後にセミコロンはありません。

[EDIT1] 実際には可能ですが、このようなプリプロセッサ ステートメントは厳密なテキスト置換になるので注意してください。

于 2012-06-28T19:22:37.170 に答える
1

のセミコロンを削除します#define

定義は、多かれ少なかれ内容をコピーしてソース ファイルに貼り付けることによって展開されます。したがって

int arr[n][m];

に展開されます

int arr[3;][4;];

これは明らかに構文エラーです。同じことが for ループにも当てはまります。

于 2012-06-28T19:22:43.167 に答える