Warum gehts nich??
-
naja du musst anstatt <1000 entweder <= 1000 oder < 999 , dann wird bis 1000 gezählt
-
Dann werden mir aber imma noch nich alle Zahlen von 1- 1000 angezeigt, sondern wieder das gleiche wie eben nur dann mit 999

-
Lies bitte einfach mal was ich zu den einzellnen Codes geschrieben hab.... und probier mal den Code den ich selbst geschrieben hab aus

-
#include <iostream> int main(int argc, char *argv[]) { for(int i = 1;i <= 1000;i++) { std::cout << "Aktuelle Zahl: " << i << std::endl; } std::cout << "Bitte Enter druecken"; std::cin >> i; return 0; }evtl. ne lösung
-
Das Problem, dass es nicht angezeigt wird, könnte an der Konsole liegen. Ist mir auch schon einmal passiert, dass der nur die paar letzten Zeilen angezeigt hat. Die Programme funktionnieren also schon, nur siehst du es nicht richtig.
#include <iostream> using namespace std; int main(){ for(int i=1;i<1001;++i){ cout<<i<<endl; if(i%100==0){ //Jede 100ste Zahl stoppen wir einmal und warten auf einen Enter-Druck cin.clear(); cin.get(); } } cin.clear(); cin.get(); return 0; }Versuch das mal und sag mir ob es geht.
PS: falls es eine Hausaufgabe ist: nimm die normale Lösung in die Schule und sag, dass es nicht geht.#include <iostream> using namespace std; int main(){ for(int i=1;i<1001;++i) cout<<i<<endl; cin.get(); }Ansonsten: hast du deine Fehler verstanden? Du hast in deinem Code da ein paar grausige Sachen geschrieben.
-
@ Shinja : Der letzte Code hat gefunzt, danke! Die anderen alle mehr oda weniger nich KA warum... Und um ehrlich zu sein, nein ich verstehs nicht alles. Das is das erste Thema was ich nich verstehe... Ich bin sonst eigentlich gut in Info =S DaS mit Iosstream.h kommt da imma von alleine wenn ich ein neues Programm schreiben will und dann lass ichs immer einfacht und sonst... Joar ich kann mir einfach nich virstellen wann ich cout, cin irgendne schleife oda sonst was nehmen muss... Ich habs auch schon mit so nem Tutorial für c++ versucht aba geholfen hats mir nich viel -.-"
@(D)Evil : Du hattest 3 gepostet und bei denen war es das gleich wie bei allen anderen ausser dem letzten: Fehler, zeigt nur 1000 oder da steht 1000, drücken sie enter um das programm zu schließen...
ABer ich wollte ja alle Zahlen von 1-1000 da stehen haben... Und auch mit rumprobieren hab ichs nich geschafft
-
Freut mich, dass es geht.
Also, du solltest dich jetzt dann mal sehr gut damit auseinandersetzen, sonst hängst du später ordentlich.
Nehmen wir mal dein Programm das du ganz am Anfang gepostet hast. Was passiert nun da?
#include <iostream.h> #include <stdlib.h> int main() { int i = 1; //wir legen eine int-Variable namens i an und geben ihr den Wert 1 int summe = 0; //eine int-Variable namens Summe mit Wert 0 while (i < 1000) /solange wie i kleiner als 1000 ist mach das, was zwischen den {} steht { summe = summe + 1; //Summe um 1 erhöhen i++; //i um 1 erhöhen } //hier ist deine while-Schleife zu Ende. Wie du siehst hast du gar nichts ausgegeben. //Du hast einfach nur dauernd deine Variablen um 1 erhöht. Wenn du es ausgeben willst //dann musst du das, was ausgibt (nämlich cout) in die Schleife schreiben return (i++); //Main ist eine Funktion. Du sorgst jetzt dafür, dass diese Funtkion i+1 zurückgibt. //Das ist relativ sinnfrei, da du mit dem Wert nichts anfangen kannst. system("PAUSE"); }Was macht der richtige Code:
#include <iostream> using namespace std; int main(){ for(int i=1;i<1001;++i) cout<<i<<endl; //das hier ist eine for Schleife. Sozusagen eine verkürzte Version für: /*int i=1; //eine int-Variable namens i, in die wir den Wert 1 schreiben while(i<1001){ //solange i kleiner als 1001 ist cout<<i<<endl; //gib den Wert von i aus und geh in eine neue Zeile ++i; //erhöhe i um 1 }*/ cin.get(); //warte auf einen Druck auf Enter }Hat es etwas geholfen?
-
So langsam werdet ihr hier immer unverschämter. Wenn ihr einfach unfähig seid, könnt ihr nicht behaupten, dass der Code nicht korrekt sei.
#include <iostream> int main() { std::cout << "Bis: " << std::endl; // "Bis: " ausgeben std::size_t to = 0; // lokale Variable to vom Type std::size_t (unsigned int) anlegen std::cin >> to; // Wert einlesen for (std::size_t i = 0; i < to; ++i) // von 0 bis (to - 1) hochzählen std::cout << (i + 1) << std::endl; // i + 1 ausgeben ... std::cin.clear(); // eingabebuffer leeren std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin.get(); // auf eingabe warten ... }Hab ich dir als 1. Anwort gegeben. Dabei hab ich dir sogar schon eingebaut, dass du eingeben kannst, bis wohin gezählt werde soll und das er am Ende die Konsole solange aufhält, bis du [Enter] drückst. Hättest du dir mal alle Antworten auf den Thread hier durchgelesen, wären dir einige Fehler in deinem Programm deutlich geworden. Aber du zeigst eine Ignoranz, die auch nicht durch schlichtes Unwissen zu entschuldigen ist!

Shinja
Ist ja nett das du einen Lösungsansatz zeigst. Nur gilt auch für dich das Lesen mal angebracht wäre. Auf der 1. Seite standen mehrere Versionen. Jeweils hab ich zu den Vorschlägen Verbesserungen und Fehlerbeseitigungen angebracht. Warum bringt ihr dann noch mehr Beispiele? Das jemand nen "Hello World"-Niveau-Programm geschrieben bekommt, muss er nicht beweisen.
Dein Programm ist übrigens auch nicht vollkommen. Hast nen paar Sachen die nicht so schön sind. Hättest du mal auf der 1. Seite gelesen was da stand, hättest auch du noch nen paar Sachen dazu gelernt.
Mit freundlichen Grüßen

Deviloper
-
Soweit ich weiß wird vorgeschrieben (oder sollte man) <iostream> statt <iostream.h> zu nutzen. Musste aber jemand anders fragen, wenn du es wissen möchtest.
mfg
-
? Kannst auch nicht lesen oder wie? Steht auch schon auf Seite 1.
-
@(D)Evil : Woher willst du wissen, dass ich nicht alles gelesen habe?! Habe ich und dein Code geht mit sicherheit, bin ich sicher allerdings kam nicht da raus was ich brauchte (leider weiß ich nicht mehr auswendig, was da stand sorry)! Und was das "Hello-World-Programm"Niveau angeht, weiter sind wir auch noch nicht wirklich

@Shinja : Ja hat es, danke!! Mein Problem ist halt immer, ich weiß nicht wann ich elche Schleife benutze, wann und wo ich cin oder cout schreibe usw. Wir haben schon wieder eine Aufgabe aufbekommen, die werde ich am WE mal ausprobieren... So langsam versteh ich es etwas besser denke ich

-
@DEvil: mal langsam bitte, so war das doch gar nicht gemeint. Den "richtigen" Code (also ohne das warten alle 100 Zahlen) habe ich eigentlich nur den letzten von dir nochmal kopiert und auf ein paar Zeilen aufgeteilt (und eben using namespace genutzt, ich weisz, diesbezüglich sind wir uns uneins, jedem das Seine) sowie ein simples int anstelle vom (natürlich besseren in diesem Fall) unsigned int resp. size_t genommen, weil ich davon ausgegangen bin, dass der TE vielleicht nur das normale int kennt und es in diesem Fall eigentlich keinen Unterschied macht. (es sind keine vector Indizis o.ä.)
Ich hatte nicht vor, irgend eine deiner Varianten als falsch hinzustellen, die waren selbstverständlich allesamt richtig (man sieht in einer Menge Threads hier sehr deutlich, dass du mir an Erfahrung und Können weit überlegen bist) Ich habe nur gepostet, weil der TE sagte, ihm würde nur eine Zahl ausgegeben werden, und da das nicht am Programm liegen konnte dachte ich, es liege vielleicht an dem oben genannten Problem.
Warum du darauf jetzt so aggressiv reagierst ist mir leider unverständlich. Ich hatte nicht vor zu kritisieren o.ä. Wenn es falsch rüber kam tut es mir leid.
-
Sorry, (D)Evil, ich kann's mir nicht verkneifen
... garantiert nicht böse gemeint!(D)Evil schrieb:
std::cin.clear(); // eingabebuffer leerenNö ... es wird nicht der Puffer geleert sondern die Flags. Den Puffer leert die nächste Zeile (also das 'ignore').
-
Hmm stimmt. Nja ne ist ja ok. Wenn jemand was wirklich konstruktives beiträgt sacht ja keiner was ...