Veröffentlicht 27. August 200618 j 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];
27. August 200618 j 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]; }
27. August 200618 j 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?
27. August 200618 j 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.
28. August 200618 j 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;
28. August 200618 j 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..
28. August 200618 j 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
28. August 200618 j 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.
28. August 200618 j 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
28. August 200618 j 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.
28. August 200618 j 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
28. August 200618 j 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".
28. August 200618 j 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
28. August 200618 j 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>.
28. August 200618 j ich danke euch ganz herzlich nur welches Programm soll ich benutzen? Im Moment Microsoft Visual C++ 6.0
28. August 200618 j 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.
28. August 200618 j 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.
28. August 200618 j Hatte jetzt mal nen compiler, da gabs kein "+=" ... Dann war das aber kein C oder C++ Compiler
29. August 200618 j 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.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.