Brauche kleine Funktion unterstuetzung
-
int main (int argc, const char * argv[]){ int anzahl = 2 ; Person eingabe[anzahl]; for(int i=0;i<anzahl;i++)person_initialisieren(eingabe[i]); for(int i=0;i<anzahl;i++)person_einlesen(eingabe[i]); for(int i=0;i<anzahl;i++)person_ausgeben(eingabe[i]); for(int i=0;i<anzahl;i++)person_freigeben(eingabe[i]); return 0; }Guten Tag, habe versucht die "anzahl" in eine seperate Funktion unterzubringen so dass er einlesen kann wieviele durchgänge gemacht werden sollen, also zb:
void person_anzahl(){cin >> anzahl};So wie ich das verstehe muss in der Funktion nichts übergeben werden, sondern nur in der main Funktion muss die "anzahl" übergeben werden.
Ich verstehe leider nicht ganz wie ich diese übergabe mache. Dachte sowas in der Art:person_anzahl(anzahl);, stimmt jedoch nicht.
Waere über eine kleine erklärung Dankbar
-
Nimm std::vector<..> anstelle des Arrays und füge dann neue Personen mit push_back(..) dazu.
-
int person_anzahl(){ int tmp; cin>>tmp; return tmp; } int main (int argc, const char * argv[]){ int anzahl; anzahl=person_anzahl(); Person eingabe[anzahl]; for(int i=0;i<anzahl;i++)person_initialisieren(eingabe[i]); for(int i=0;i<anzahl;i++)person_einlesen(eingabe[i]); for(int i=0;i<anzahl;i++)person_ausgeben(eingabe[i]); for(int i=0;i<anzahl;i++)person_freigeben(eingabe[i]); return 0; }
-
hä?
willst du sowas?int main() { int anzahl; cin >> anzahl; // restlicher code... }und diesen input halt in eine funktion auslagern?
-
... und alle Schleifen zu einer machen.
-
Skym0sh0 schrieb:
hä?
willst du sowas?int main() { int anzahl; cin >> anzahl; // restlicher code... }und diesen input halt in eine funktion auslagern?
sorry das ich mich vielleicht unverständlich ausgedrückt habe, genau das meinte ich, meine frage war wie ich den Wert dann der main Funktion übergebe.
So wie ich es jetzt verstanden habe waere es aber dann so ?
int person_anzahl(){ int tmp; cin >> tmp; return tmp; } int main (int argc, const char * argv[]){ int anzahl; anzahl = person_anzahl(); Person eingabe[anzahl]; for(int i=0;i<anzahl;i++)person_initialisieren(eingabe[i]); for(int i=0;i<anzahl;i++)person_einlesen(eingabe[i]); for(int i=0;i<anzahl;i++)person_ausgeben(eingabe[i]); for(int i=0;i<anzahl;i++)person_freigeben(eingabe[i]); return 0; }
-
Mach die BB-Codes an. Am besten auch in Deinem Profil.
-
volkard schrieb:
Mach die BB-Codes an. Am besten auch in Deinem Profil.
Danke habe schon danach gesucht

-
Hallo,
die Erzeugung eines Arrays mit variabler Anzahl ist aber kein korrekte C++ (auch wenn dies einige Compiler als Erweiterung haben, da es in C99 definiert ist):
int anzahl = ...; Person eingabe[anzahl];Die Alternative ist die Verwendung von std::vector<>:
#include <vector> int anzahl = ...; std::vector<Person> personen(anzahl);