Das kleine Einmaleins
-
#include <iostream> #include <cstdlib> using namespace std; int main() { int spalte = 1; int wert = 0; for(spalte = 1; spalte <= 11; wert++){ cout << (spalte*wert) << "\t"; if(wert == 10){ spalte++; wert = 0; } } system("pause"); return 0; }
wo steckt der Fehler?
-
du solltest uns vielleicht erstmal sagen, was nicht funktioniert bzw. was du wünschst.
-
Verräts du uns auch was denn das Programm überhaupt machen soll?
-
Ops entschuldigung ich dachte mein Titel sagt schon alles aus
Das Programm soll das kleine Einmaleins(von 1-100) mithilfe der for-Schleife ausgeben.
-
mach zwei ineinander verschachtelte for-schleifen.
-
for(int i=1; i<=10; ++i) for(int j=1; j<=10; ++j) cout<<i<<"*"<<j<<"="<<i*j<<endl;
inb4 geflenne wegen endl
-
Danke für die Hilfe
Ergebnis:
int wert = 0; for(int spalte = 1; spalte <= 10;){ wert++; cout << (spalte*wert) << "\t"; if(wert == 10){ spalte++; wert= 0; } }
-
Du hast eine merkwuerdig umstaendliche Art, Schleifen zu programmieren. Das ist mir schon in deinem Thread ueber Zufallszahlen aufgefallen, besonders hier. Du solltest dir mal for-Schleifen genauer ansehen. Du brauchst nicht einmal die ausgefallenen Moeglichkeiten der for-Schleife. Die "normale" Anwendung, einfach nur zum Hochzaehlen einer Variable, wuerde deinen Code schon wesentlich kuerzer und lesbarer machen.
-
SeppJ schrieb:
Du hast eine merkwuerdig umstaendliche Art, Schleifen zu programmieren. Das ist mir schon in deinem Thread ueber Zufallszahlen aufgefallen, besonders hier. Du solltest dir mal for-Schleifen genauer ansehen. Du brauchst nicht einmal die ausgefallenen Moeglichkeiten der for-Schleife. Die "normale" Anwendung, einfach nur zum Hochzaehlen einer Variable, wuerde deinen Code schon wesentlich kuerzer und lesbarer machen.
Oke dass machen ich jetzt sofort
Danke
-
Die Aufgabe war:
Schreiben Sie eine Anwendung, bei der der Anwender den Startwert, den Endwert und
die Zahl eingibt, die bei jedem Schleifendurchlauf auf die Schleifenvariable addiert wird. Der Inhalt
der Schleifenvariable soll ausgegeben werden.#include <iostream> using namespace std; int main() { int a; cout << "Start:"; cin >> a; int e; cout << "Ende:"; cin >> e; int z; cout << "Dazurechnen:"; cin >> z; for(a;a != e; a++){ cout << a << "\t 'A'Rechnung:" << (a+z) << endl; } system("Pause"); return 0; }
-
ich glaube, du hast da etwas falsch verstanden: pro schleifendurchgang soll sich die zählvariable um z erhöhen, nicht um 1. dann funktioniert das mit a != e auch nur noch wenn (e - a) | z gilt. daher musst du dir hier etwas anderes überlegen.
-
Schreiben Sie eine Anwendung, bei der der Anwender den Startwert, den Endwert und
die Zahl eingibt, die bei jedem Schleifendurchlauf auf die Schleifenvariable addiert wird. Der Inhalt
der Schleifenvariable soll ausgegeben werden.Versuche sowas mal umzuformulieren.
z.B. in Solange der Startwert kleiner oder gleich dem Endwert ist, soll zum startwert eine Zahl addiert werden die der user eingegeben hat. Der Startwert und der Endwert soll vom User eingegeben werden.
Das ist weit einfacher in eine Schleife umzuformen. Vllt findest du sogar noch eine Formulierung die besser auf eine For schleife passt.
z.B.
Für einen Startwert soll geprüft werden ob dieser kleiner oder gleich dem endwert
ist, und dann eine vom User eingebene Zahl hinzu addieren.Oder in besserem deutsch:
Zu einem Startwert soll eine vom user eingenbene zahl addiert werden, bis diese größer als der Endwert ist.Das in der Mitte ist zwar das schlimmste deutsch, lässt sich aber am leichtesten in eine Schleife umformen. Wenn du da den dreh mal raus hast, wird es dir irgendwann auch leicht fallen in der letzen aussage die Schleife zu sehen, und irgendwann dann auch direkt in der Aufgabenstellung.
Wichtig ist nur, dass du dir die Aufgabenstellung klar machst.
-
Ja ich habe dich Aufgabenstellung nicht richtig verstanden
Danke, dass du es mir nochmal erklärt hast, ich probiere es gleich mal
aus und poste mein Ergebnis hier hin
-
"Schreiben Sie eine Anwendung, die die Zahlen 10 bis 0 in 0,5 Schritten ausgibt."
Ich verstehe nicht was die mit 0,5 Schritten meinen
Kann mir das jemand von euch bitte erklären?
-
-
trodan schrieb:
"Schreiben Sie eine Anwendung, die die Zahlen 10 bis 0 in 0,5 Schritten ausgibt."
Ich verstehe nicht was die mit 0,5 Schritten meinen
Kann mir das jemand von euch bitte erklären?
#include <iostream> int main(){ std::cout<<"10 9.5 9 8.5 8 7.5 7 6.5 6 5.5 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0\n"; }
-
Achssoo hab wieder in die falsche Richtung gedacht....
Naja danke
-
Sorry das ich so nerve^^
Meine nächste Frage ist : Wann sollte man die for-Schleife benutzen, wann die while-Schleife und wann sollte man die do-while- Schleife benutzen?
-
trodan schrieb:
Sorry das ich so nerve^^
Meine nächste Frage ist : Wann sollte man die for-Schleife benutzen, wann die while-Schleife und wann sollte man die do-while- Schleife benutzen?ganz grob vereinfacht:
for, wenn von vorne herei feststeht, wie lang die schleife läuft.
while, wenn man's nicht weiß.
do, wenn sie sinnvollerweise mindestens einmal läuft und for nicht passt.
-
Noch als kleine Ergänzung.
do-while kann man immer dann besonders gut nehmen, wenn die schleifenbedingung einen schleifendurchlauf voraussetzt. Denn sonst müsste man diesen einen durchlauf vorher einmal programmieren.
z.B. Du willst das der User eine zufallszahl erräht. Solange wie er nicht richtig liegt ist kann er es versuchen. Am ende werden die versuche ausgegeben.
generiere Zufallszahl zwischen 1 und 100 do { getUserEingabe zähleUserEingabeHoch }while(UserEinagbe != Zufallszahl)
Ist im Prinziep genau das was Volkard gesagt hat. Sie läuft sinnvoller Weise einmal durch und for passt nicht wirklich. Aber es ist irgentwie verständlicher finde ich.