2017-05-31 60 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-錯誤。

並在第二個函數 main.cpp | 29 |錯誤:數組下標的無效類型'int [int]'|

我該怎麼辦?我很困惑:(

+0

「int WertA」是一個int。你不能從它得到WertA [i],因爲它不是一個數組。 –

+1

爲什麼你的無效函數返回?你沒有收到警告嗎?如果沒有,然後打開它們。 – DeiDei

+0

歡迎來到Stack Overflow。請花些時間閱讀[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]; 
     ... 

你有什麼期望發生

WertAint型的,它是一個數字,你想它的索引就像是一個數組

你可以索引,如果原型是這樣的:。

void Eingabe(int* WertA) 

這將表明WertAint的數組。當然,功能之外的陣列可以是這樣的:

int WertA[4]; 

而且,你做的是功能後:

return WertA; 

而它的返回類型是void,這將導致在編譯錯誤。

+1

...只要在該函數之外創建4個int的空間:) –

相關問題