Array global, mehrdeutige Größenvariable...



  • Hey, ich muss ein einfaches Programm schreiben, aber ich häng schon bei der Array, ich würde sie gern global definieren, nur leider kommt hier folgender Fehler (E0266, size ist mehrdeutig)

    Danke im Voraus.

    #include <iostream>
    using namespace std;

    //void ari(double x);
    //void set(int s);
    const int size = 10; //Hier sollte der Fehler sein...
    int x[size];

    int main(void)

    {
    int size1 = 10;
    int add1;
    int erg1;

    //0SetTabelle
    for (int i = 0; i <= size1; i++)
    {
    	x[i] = 0;
    }
    
    cout << "Bitte Werte eintrage um Mittelwert zu berechnen \n"
    	<< "maximal 10 Zahlen" << endl;
    for (int i = 0; i <= size1; i++)
    {
    	if (x[i] == 0)
    	{
    		cout << "Bitte Wert eingeben..." << endl;
    		cin >> x[i];
    		
    	}
    }
    
    cout << " Wähle eine Art den Mittelwert auszurechnen: \n "
    	<< "\t1. Arithmetischer Mittelwert \n "
    	<< "\t2. Geometrisches Mittel \n"
    	<< "\t3. Harmonischer Mittelwert \n"
    	<< "\t4. Beenden"
    	<< " Auswahl : " << endl;
    
    char Auswahl;
    cin >> Auswahl;
    
    switch (Auswahl) {
    case '1':
    	cout << "Arithmetischer Mittelwert berechnen \n";
    	
    	for (int i = 0; i <= size1; i++)
    	{
    		add1 = add1 + x[i];
    	}
    	
    	erg1 = add1 * (1 / size1);
    
    	cout << "Arth Mit ist gleich \n"
    		<< erg1 << endl;
    
    	break;
    case'2':
    	cout << "Geometrisches Mittel berechnen \n";
    	break;
    case'3' :
    		cout << "Harmonischer Mittelwert berechnen \n";
    		break;
    	case '4':
    		break;
    		return 0;
    }
    
    cin.sync();
    cin.get();
    return 0;
    

    }



  • Da hast du gleich ein Beispiel, warum using namespace std; meistens keine gute Idee ist. Es gibt std::size.

    Andererseits:

    • vermeide globale Variablen! Erzeuge kein globales x!
    • nimm std::vector<int> x; und nicht das C-Style Array!


  • Warum gibt es size und size1, die beide etwas mit der Arraygrösse zu tun haben?

    for (int i = 0; i <= size1; i++)

    Und schon hast du auf das erste Element nach dem Array zugegriffen.


Anmelden zum Antworten