Übergabe von Arrays /Gültigkeitsbereich von Variablen
-
Hallo,
ich beschäftige mich gerade mit Arrays und bin auf folgendes Problem gestoßen:
#include "stdafx.h" using namespace System; int quadriere(Int32 feld[j]) { Int32 quadrat; quadrat= feld[j]*feld[j]; } int main(array<System::String ^> ^args) { Int32 feld[5]; for (Int32 i=0; i<4; i++) { Console::WriteLine("Bitte geben Sie eine Zahl ein! "); feld[i] = Convert::ToInt32(Console::ReadLine()); } for (Int32 j=0; j<4; j++) { Console::Write("{0} \t", feld[j]); Console::WriteLine ("Das Quadrat von {0} ist {1}", feld[j], quadriere(feld[j])); } return 0; }
wenn ich nun versuche dieses Programm übersetzen zu lassen, erhalte ich folgende fehlermeldung:
1>Felder1.cpp
1>.\Felder1.cpp(7) : error C2065: 'j': nichtdeklarierter Bezeichner
1>.\Felder1.cpp(26) : error C2664: 'quadriere': Konvertierung des Parameters 1 von 'int' in 'int []' nicht möglichwenn ich dieses Programm ohne Felder schreibe, funktioniert alles nach Wunsch:
ich hoffe ihr könnt mir sagen, wo mein Denkfehler liegt
Vielen Dank & mfg Dragon
-
1. Dein Array ist 5 Felder groß
Int32 feld[5];
du benutzt aber nur 4 (nimm i < 5)
zum Problem
feld ist ein Array von Integer werten.
wenn du in der Schleifefeld[j]
schreibst, bekommst du einen einzelnen Integer,
den musst du nicht 2mal dereferenzierenändere die Funktion um zu
int quadriere(Int32 wert) { Int32 quadrat; quadrat= wert*wert; return quadrat; // wir wollen den wert wieder zurückgeben ! }
-
Vielen dank für die schnelle Antwort
=> nun funktioniert alles wie gewünscht
mfg Dragon