2017-05-31 11 views
-2

私は配列+関数+スイッチのC++でのテストでした。無効な型 'int [int]'は、配列の添字のコンパイルが-Wfatal-errorsのために終了しました。

まだ完了していませんが、「入力または入力」機能に問題があります。

#include <iostream> 
#include <conio.h> 
#include <string> 

using namespace std; 

int Groesse[6]; 
int Gewicht[6]; 
string Name[6]; 
int i; 
int Auswahl; 

void Eingabe(int WertA) 
{ 
    cout << "Bitte die die Liste fuellen: " << endl; 
    for (i=0; i<=4; i++) 
    { 
     cin >> WertA[i]; 
    } 
    return WertA; 
} 

void Ausgabe (int WertB) 
{ 
    cout << "Folgende Werte wurden eingegeben: "<< endl; 
    for (i=0; i<=4;i++) 
    { 
     cout << WertB[i]; 
    } 
    return 0; 
} 

int main() 
{ 
    cout << "Bitte die Groessen eingeben: "<< endl; 
    Eingabe(Groesse); 
    cout << "Bitte das zugehoerige Gewicht eingeben: " << endl; 
    for (i= 0; i<=4; i++) 
    { 
     cout << "Gewicht" <<i+1 << ": "; 
     cin >> Gewicht[i]; 
    } 
    cout << "Bitte den Zugehoerigen Namen angeben" << endl; 
    for (i=0; i<=4; i++) 
    { 
     cout<< "Name" <<i+1<<": "; 
     cin >> Name[i]; 
    } 

    cout << "Wonach wollen Sie suchen? Druecken Sie: " << endl; 
    cout << "(1)Groesse oder (2) Name oder (3) Gewicht " << endl; 
    cin >> Auswahl; 

switch (Auswahl) 
    { 
    case ('1'): 
     cout << "Geben Sie die Gesuchte nummer an von 0-4" << endl; 
     cin >> i; 
     cout << Groesse[i], Gewicht[i], Name[i]; 
     break; 


    case ('2'): 
     cout << "Geben Sie die Gesuchte nummer an von 0-4" << endl; 
     cin >> i; 
     cout << Groesse[i], Gewicht[i], Name[i]; 
     break; 


    default: 
     cout <<"Falsche Eingabe bitte Widerhollen" << endl; 
     break; 
    } 
    return 0; 
} 

問題はライン19/21である: 無効な種類の 'INT [INT]' による-Wfatal-エラーに終わる配列の添字のコンパイルのために。

と2番目の関数 main.cpp | 29 | error:無効な型int [int] 'は配列の添字です。

どうすればよいですか?私は、例えば、ここで:(

+0

"int WertA"は単一のintです。配列ではないので、WertA [i]を取得することはできません。 –

+1

あなたのvoid関数はなぜ戻りますか?あなたは警告を受けていませんか?そうでない場合は、オンにします。 – DeiDei

+0

ようこそスタックオーバーフロー。 [The Tour](http://stackoverflow.com/tour)を読み、[ヘルプセンター](http://stackoverflow.com/help/asking)の資料を参考にしてください。ここに聞いてください。 –

答えて

1

混乱している:

void Eingabe(int WertA) 
{ 
    for (i=0; i<=4; i++) 
     cin >> WertA[i]; 
     ... 

あなたが起こるために何を期待します

WertAが、それは数だ、タイプintのものであり、あなたがインデックスにそれをしようとしています?それが配列だったようにあなたは、インデックス可能性

それプロトタイプはこのようなものだった場合:。

void Eingabe(int* WertA) 

は、WertAintの配列であることを示します。もちろん、関数の外配列は次のようになります。

int WertA[4]; 

をまた、あなたはその関数の後半で行います

return WertA; 

をその戻り値の型が生じるはずであるvoid、ありながら、コンパイルエラーです。

+1

...関数の外で4つの整数のためのスペースが作成されている限り:) –

関連する問題