muca89 Geschrieben 27. August 2006 Geschrieben 27. August 2006 Hallo hab eine Frage. Wie kann ich diese Zeile verkürzen summe = preise[0]+preise[1]+preise[2]+preise[3]+preise[4]+preise[5]+preise[6]+preise[7]+preise[8]+preise[9]; Zitieren
Guybrush Threepwood Geschrieben 27. August 2006 Geschrieben 27. August 2006 mit einer schleife Zitieren
muca89 Geschrieben 27. August 2006 Autor Geschrieben 27. August 2006 hmm bin noch ganz neu bei der sache könntest du es mal machen mit der schleife? Zitieren
Bubble Geschrieben 27. August 2006 Geschrieben 27. August 2006 Du veränderst nur die Schreibweise, das Ergebnis bleibt gleich. Je nach Compiler (und dessen Einstellungen) kann es sein, dass für beide Varianten der gleiche Code generiert wird. summe = preise[0]; for(int i=1;i<10;i++) { summe+=preise[i]; } Zitieren
muca89 Geschrieben 27. August 2006 Autor Geschrieben 27. August 2006 hmmm klappt irgendwie net also so sieht es komplett bei mir aus #include <iostream.h> void main() { float preise[10],summe,durchschnitt; int i; for(i=0; i<10; i++) { cout << "\n\n\tGeben Sie den " << i+1 << " .ten Preis ein! "; cin >> preise; } summe = preise[0]+preise[1]+preise[2]+preise[3]+preise[4]+preise[5]+preise[6]+preise[7]+preise[8]+preise[9]; durchschnitt = summe/10; cout << "\n\n\tDer Durchschnittspreis betr\x84gt: " <<durchschnitt << "Euro"; for(i=0; i<10; i++) { cout << "\n\n\tDer" << i+1 << " .te Preis ist: " << preise <<" Euro"; } } wie müsste es eigentlich verkürzt sein? Zitieren
perdian Geschrieben 27. August 2006 Geschrieben 27. August 2006 hmmm klappt irgendwie net Was heisst "klappt nicht"? Compiler-Fehler? Fehlerhafte Ausgabe? Oder ganz was anderes? Wieso fängst du nicht einfach damit an dir die C Grundlagen mit einem Tutorial und/oder einem Buch selbst anuzlesen? Dann wirst du auch in der Lage sein diese Übungsaufgabe (ich gehe mal davon aus, dass es eine ist) selbst zu lösen. Zitieren
steinadler Geschrieben 28. August 2006 Geschrieben 28. August 2006 hmmm klappt irgendwie net Versuchs doch mal mit summe = preise[0]; for(int i=1;i<10;i++) { summe = summe + preise[i]; } Hatte jetzt mal nen compiler, da gabs kein "+=" ... Achso.... der Grund, warum es bei dir nicht funktionierte könnte auch sein, dass die Variable "SUMME" nicht initialisiert war. also du musst vor der Schleife noch schreiben summe = 0; Zitieren
Dragon8 Geschrieben 28. August 2006 Geschrieben 28. August 2006 Es funktioniert, wie ich es gerade festgestellt habe, wahrscheinlich nicht, weil du versuchst eine falsche bibliothek einzubinden, er diese bei mir jedenfalls nicht. richtig müsste es so heißen: #include <iostream> using namespace std; das "using namespace std;" ist auch insoweit wichtig, da du sonst vor jedes cin oder cout "std::" schreiben müsstest. und sonst befolge wirklich lieber den rat von perdi.. Zitieren
muca89 Geschrieben 28. August 2006 Autor Geschrieben 28. August 2006 Es funktioniert, wie ich es gerade festgestellt habe, wahrscheinlich nicht, weil du versuchst eine falsche bibliothek einzubinden, er diese bei mir jedenfalls nicht. richtig müsste es so heißen: #include <iostream> using namespace std; das "using namespace std;" ist auch insoweit wichtig, da du sonst vor jedes cin oder cout "std::" schreiben müsstest. und sonst befolge wirklich lieber den rat von perdi.. danke aber es läuft ja bei mir ganz normal das haben wir so in der schule gemacht nur wenn ich es mit der summe= preise[1] usw verkürze geht es nicht Zitieren
Klotzkopp Geschrieben 28. August 2006 Geschrieben 28. August 2006 danke aber es läuft ja bei mir ganz normalDas ist kein Argument. das haben wir so in der schule gemacht Das schon gar nicht. Der Code entspricht so nicht dem Standard. Dass der Compiler, den du da gerade benutzt, das so akzeptiert, macht den Code nicht richtig. nur wenn ich es mit der summe= preise[1] usw verkürze geht es nichtperdi hat es doch schon gesagt: Was heißt "es geht nicht"? Eine ordentliche Fehlerbeschreibung ist die Grundvoraussetzung für jede weitere Hilfe. Zitieren
muca89 Geschrieben 28. August 2006 Autor Geschrieben 28. August 2006 Ja aber ich meine ja, dass es bei mir eigentlich geklappt hat aber ich probobier es auch so wie ihr es gesagt habt und nur die aufgabe war diese Zeile zu verkürzen: summe = preise[0]+preise[1]+preise[2]+preise[3]+preise[4]+preise[5]+preise[6]+preise[7]+preise[8]+preise[9]; damit ich nciht immer so viel schreiben muss Zitieren
Klotzkopp Geschrieben 28. August 2006 Geschrieben 28. August 2006 Ja aber ich meine ja, dass es bei mir eigentlich geklappt hat Das habe ich schon verstanden. Du darfst daraus eben nur nicht den Schluss ziehen, dass das richtig ist. nur die aufgabe war diese Zeile zu verkürzen: damit ich nciht immer so viel schreiben mussDas hatten wir doch schon. Bubble hat geschrieben, wie du das mit einer Schleife machen kannst. Und du hast geschrieben, dass das nicht geht. Und trotz mehrfachen Nachfragens hast du bisher nicht geschrieben, was genau nicht geht. Also bitte. Zitieren
muca89 Geschrieben 28. August 2006 Autor Geschrieben 28. August 2006 Ich habe jetzt alles so gemacht wie ihr es gesagt habt. Sieht jetzt so aus: #include <iostream> using namespace std; void main() { float preise[10],summe,durchschnitt; int i; for(i=0; i<10; i++) { cout << "\n\n\tGeben Sie den " << i+1 << " .ten Preis ein! "; cin >> preise; } summe = preise[0]; for(int i=1;i<10;i++) { summe = summe + preise; } durchschnitt = summe/10; cout << "\n\n\tDer Durchschnittspreis betr\x84gt: " <<durchschnitt << "Euro"; for(i=0; i<10; i++) { cout << "\n\n\tDer " << i+1 << " .te Preis ist: " << preise <<" Euro"; } } Aber es steht dann :\Programme\Microsoft Visual Studio\MyProjects\Durchscnitt\durchschnitt1.cpp(27) : error C2086: 'i' : Neudefinition Zitieren
Klotzkopp Geschrieben 28. August 2006 Geschrieben 28. August 2006 Geht doch! :\Programme\Microsoft Visual Studio\MyProjects\Durchscnitt\durchschnitt1.cpp(27) : error C2086: 'i' : Neudefinition An dieser Stelle hält sich dein (ziemlich veralteter) Compiler nicht an den Standard. Du musst das "int" aus dem Initialisierungsteil der Schleife entfernen. Und es heißt "int main", nicht "void main". Zitieren
muca89 Geschrieben 28. August 2006 Autor Geschrieben 28. August 2006 hmmm welches programm würdest du den mir emphälen Zitieren
muca89 Geschrieben 28. August 2006 Autor Geschrieben 28. August 2006 gott sei dank es hat geklappt wie ihr es gesagt habt Zitieren
russkij Geschrieben 28. August 2006 Geschrieben 28. August 2006 int i; for(int i=1;i<10;i++) { summe = summe + preise; } : error C2086: 'i' : Neudefinition schau dir die zeilen genau an. je nach kompiler kommt hier error oder warnung Zitieren
Klotzkopp Geschrieben 28. August 2006 Geschrieben 28. August 2006 Stimmt, es ist keine Standardfrage. Ich hatte mich da verguckt. Es geht übrigens noch kürzer: summe = accumulate(preise, preise + 10, 0.0); Dafür braucht man allerdings den Header <numeric>. Zitieren
muca89 Geschrieben 28. August 2006 Autor Geschrieben 28. August 2006 ich danke euch ganz herzlich nur welches Programm soll ich benutzen? Im Moment Microsoft Visual C++ 6.0 Zitieren
Klotzkopp Geschrieben 28. August 2006 Geschrieben 28. August 2006 ich danke euch ganz herzlich nur welches Programm soll ich benutzen? Im Moment Microsoft Visual C++ 6.0Du kannst bei MSVC 6 bleiben. Das Programm ist nur schon ziemlich alt, sogar älter als der C++-Standard. MSVC 2005 (Express Edition) gibt es kostenlos bei Microsoft. Zitieren
pit030771 Geschrieben 28. August 2006 Geschrieben 28. August 2006 versuch doch mal einfach in der schleife das int i eifach nur dur i zu ersetzen! du hast i nämlich schon weiter oben deklariert. Zitieren
muca89 Geschrieben 28. August 2006 Autor Geschrieben 28. August 2006 ich danke ecuh allen es hat ja schon geklappt Zitieren
Bubble Geschrieben 28. August 2006 Geschrieben 28. August 2006 Hatte jetzt mal nen compiler, da gabs kein "+=" ... Dann war das aber kein C oder C++ Compiler Zitieren
steinadler Geschrieben 29. August 2006 Geschrieben 29. August 2006 Dann war das aber kein C oder C++ Compiler Genau so... es war nämlich ein C2-Compiler... das ist halb C, halb nicht C. Aber wenn du den Ablauf verfolgst, war an dieser Stelle noch nicht klar, um welche Programmiersprache es sich handelt. Zitieren
Guybrush Threepwood Geschrieben 29. August 2006 Geschrieben 29. August 2006 Doch denn das hier ist das C/C++ Forum Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.