fragen über array , switch und zeiger
-
Hi leute,
zuerst möchte ich mich für die zahlreiche hilfe bedanken- wenn ich von tastatur array eingeben möchte und eingabe soll mit 0 beendet, wie kann ich das tun?
2)wenn ich zum beispiel array definiere int a[20]; und dann von tastatur 10 zahlen eingebe wird dann a wieder die grösse 20 haben oder?
#include <iostream> using namespace std; intmain() { for(intk=4; k>0; k=k-1) { switch (k) { case 1: cout<< k; break; case 2: k = k -1; case 3: cout<< '-'; break; default: cout<< k + 5; } } return 0; }warum ist die ausgabe 9-- und nicht 9-1?
- ich kapiere überhaupt nicht über zeiger und adressen. kennt ihr irgendein deutschsprachige link wo es gut erklhrt ist?
danke vielmals
lg nata
-
- wenn ich von tastatur array eingeben möchte und eingabe soll mit 0 beendet, wie kann ich das tun?
Indem du in einer while-Schleife solange Zahlen einliest bis eine 0 eingegeben wird.
Dabei muss du darauf achten, dass du nicht mehr Zahlen Eingibst als deine Array lang ist. Verwende am besten vector statt Arrays, die sind Komfortabler. Ein Minibeispiel dazu:#include <vector> #include <iostream> int main() { vector<int> Zahlensammlung; //"Array" erstellen dessen Inhalt ints sind. Zahlensammlung.push_back(10); //10 der "Array" hinzufügen Zahlensammlung.push_back(20); //20 der "Array" hinzufügen Zahlensammlung.push_back(30); //30 der "Array" hinzufügen cout<<Zahlensammlung[1]<<Zahlensammlung[0]<<Zahlensammlung[2];//Ausgabe: 201030 return 0; }- wenn ich zum beispiel array definiere int a[20]; und dann von tastatur 10 zahlen eingebe wird dann a wieder die grösse 20 haben oder?
In diesem Fall wird a wird immer die Größe 20 haben, die letzten 10 Einträge sind dann irgendwas.
Die Ausgabe ist 9-- weil du bei k=2 das k um 1 verringerst aber nicht ausgibst(Zeile 9 bei dir) und es fehlt ein break, damit wird "case 3:" abgearbeitet, daher bekommst du dein 2tes '-'.
So würdest du die Ausgabe 9-1 bekommen:
int main() { for(int k=4; k>0; k=k-1) { switch (k) { case 1: cout<< k; break; case 2: k = k-1; //Hier könnte auch k-- stehen. cout<<k; break; case 3: cout<< '-'; break; default: cout<< k + 5; } } return 0; }Dabei sollte dir aber klar werden, dass "case 1:" nicht eintreten wird, wenn "case 2:" eingetreten ist.
Gewöhn dir an Einrückungen zu machen damit kann man den Code viel besser lesen und man endeckt schneller Fehler wie z.B. Klammer vergessen oder break fehlt.