Die Fahrt zum Mond

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Die Fahrt zum Mond

    Hi,
    bin ein absoluter Noob und hänge seit drei std. an einem sicherlich "lächerlichen" problem, komme aber einfach nicht weiter.

    Folgendes:
    Ich möchte ein Programm erstellen, welches den Verbrauch und die Zeit anzeigt, wenn man zum Mond fahren will. *etwas dumm, ich weiß :) *

    Hier bis jetzt mein kompletter Code:

    Quellcode

    1. #include<iostream>
    2. #include<math.h>
    3. using namespace std;
    4. int abbruch;
    5. int entfernung=400000;
    6. int main()
    7. {
    8. printf("Die Entfernung Erde-Mond betraegt etwa 400.000 km\n"
    9. "Mit welchem der zwei Fahrzeuge moechten sie einen Kurztrip wagen?: \n\n"
    10. "Golf GTI (BJ 2006) mit 250PS und Vmax=230km/h: ------ 1\n"
    11. "Seat Marbella (BJ 1990) mit 34PS und Vmax=135km/h: --- 2\n");
    12. int auswahl;
    13. scanf("%i",&auswahl);
    14. cin.get();
    15. switch(auswahl)
    16. {
    17. case 1:
    18. printf("\nSie haben sich fuer den GTI entschieden, eine weise Entscheidung!\n");
    19. int a;
    20. int speed;
    21. do {
    22. printf("Bitte geben Sie an, wie schnell sie fahren moechten: ");
    23. scanf("%i",speed);
    24. if (speed > 250){ /*Wieso wird dieses if ausgeführt, auch
    25. wenn man <250 eintippt, was ja false bedeutet ?*/
    26. printf("\nHalt, so schnell faehrt das Ding nicht,\a\nWollen Sie es nochmal versuchen 1-Ja; 2-Nein: \n");
    27. scanf("%i",&a);
    28. }
    29. else if(speed < 250) { /*Und wieso ignoriert C++ dieses else if, obwohl
    30. die Bedingung eigentlich true ist ???*/
    31. printf("Ihr Verbrauch liegt bei .....\nWollen Sie es nochmal versuchen 1-Ja; 2-Nein: \n");
    32. scanf("%i",&a);
    33. }
    34. }
    35. while(a!=2);
    36. break;
    37. cin.get();
    38. }
    39. }
    Alles anzeigen




    Hänge bei den if und if-else Sachen fest. Fragen sind als Kommentar im code angezeigt.
    Falls wer ´ne Lösung wäre ich ihm sehr dankbar.

    Ach ja, falls sich jemand wundert,
    zum Verbrauch und der benötigten Zeit bin ich noch nicht gekommen...... :?
  • "d0nUt" schrieb:

    hab deinen code mal eingerückt, damit man das auch lesen kann

    ergänze noch das return 0 am ende der main()

    und in #27 hast du das Adressoperator vergessen:

    Quellcode

    1. scanf("%i", &speed);

    Danke fürs Einrücken, hat bei mir nicht geklappt.

    Wie? Das lag nur an diesem kleinen & ?
    Hab den Code soeben über den Compiler laufen lassen und es läuft alles wunderbar.
    Hab mir zwar schon gedacht, dass es was billiges sein müsste, aber das es sooo billig ist. Jetzt leuchtets mir ein, wieso das if immer ausgeführt wurde.
    Schande über mein Haupt. :oops:

    @dOnUt
    Danke dir! Du hast mir sehr viel Zeit erspart!
    So ein Fehler wird mir nicht nochmal passieren...
  • "Skorp" schrieb:


    Cin und Cout hatte ich mir dann selber im internet abgeschaut, ist aber soweit ich erkennen kann dasselbe, oder gibts da gravierende Unterschiede?

    Allerdings,aber dass würde jetzt definitiv zu weit führen.
    Nur soviel,cin und cout sind keine Funktionen sonder Exemplare von std::istream und std::ostream.

    Gruß void
    "Probleme kann man niemals mit derselben Denkweise lösen,
    durch die sie entstanden sind." (A. Einstein)
  • So, hab nun den Code fertig.
    Wollt ihn euch auch mal zeigen, nur so als Gag.

    Quellcode

    1. #include<iostream>
    2. using namespace std;
    3. int abbruch, Tankinhalt=50, tanken, Zeit, Tage, Entfernung=400000;
    4. float km, Verbrauch;
    5. int main()
    6. {
    7. printf("Die Entfernung Erde-Mond betr\204gt etwa 400.000 km\n"
    8. "Mit welchem der zwei Fahrzeuge m\224chten sie einen Kurztrip wagen?: \n\n"
    9. "Golf GTI (BJ 2006) mit 250PS und Vmax=230km/h: ------ 1\n"
    10. "Seat Marbella (BJ 1990) mit 34PS und Vmax=135km/h: --- 2\t");
    11. int auswahl;
    12. scanf("%i",&auswahl);
    13. cin.get();
    14. switch(auswahl)
    15. {
    16. case 1:
    17. printf("\nSie haben sich f\201r den GTI entschieden, eine gute Wahl\n");
    18. int a;
    19. int speed;
    20. do{
    21. printf("Bitte geben Sie an, wie schnell sie fahren m\224chten:\t");
    22. scanf("%i",&speed);
    23. if (speed > 250){
    24. printf("\nHalt, so schnell f\204hrt das Auto nicht,\a\n"
    25. "Wollen Sie es nochmal versuchen 1-Ja; 2-Nein: \t\n");
    26. scanf("%i",&a); }
    27. else if((speed <= 250) && (speed > 220)) Verbrauch=23.4;
    28. else if((speed <= 220) && (speed > 190)) Verbrauch=17.7;
    29. else if((speed <= 190) && (speed > 160)) Verbrauch=14.8;
    30. else if((speed <= 160) && (speed > 130)) Verbrauch=10.2;
    31. else if((speed <= 130) && (speed > 100)) Verbrauch=8.7;
    32. else if((speed <= 100) && (speed > 70)) Verbrauch=8.5;
    33. else if((speed <= 70) && (speed > 40)) Verbrauch=8.8;
    34. else if((speed <= 40) && (speed > 10)) Verbrauch=10.6;
    35. else if((speed <= 10) && (speed >= 1)) Verbrauch=15.3;
    36. else {printf("\nViel Spass dabei!\nBei dieser Fahrweise kommen Sie nicht weit\n");
    37. scanf("%i",&a);}
    38. km=Tankinhalt/Verbrauch*100;
    39. tanken=Entfernung/km;
    40. Zeit=Entfernung/speed;
    41. Tage=Zeit/24;
    42. printf("\nBei dieser Fahrweise verbrauchen sie knapp %.1f Liter und \n"
    43. "kommen pro Tankf\201llung ca. %.1f Kilometer weit.\n"
    44. "Sie m\201ssten also %i mal tanken, um zum Mond zu gelangen!!\n\n"
    45. "Insgesamt ben\224tigen Sie f\201r diesen Trip %i Stunden,\n"
    46. "was etwa %i Tage entspricht!\n"
    47. "Wollen Sie es nochmal versuchen 1-Ja; 2-Nein: \t",Verbrauch,km,tanken,Zeit,Tage);
    48. scanf("%i",&a);
    49. }
    50. while(a!=2);
    51. break;
    52. cin.get();
    53. case 2:
    54. printf("\nSie haben sich f\201r den Seat Marbella entschieden, "
    55. "eine weise Entscheidung\n");
    56. int b;
    57. int speedy;
    58. do{
    59. printf("Bitte geben Sie an, wie schnell sie fahren m\224chten:\t");
    60. scanf("%i",&speedy);
    61. if (speedy > 135){
    62. printf("\nHalt, so schnell f\204hrt das Auto nicht,\a\n"
    63. "Wollen Sie es nochmal versuchen 1-Ja; 2-Nein: \t\n");
    64. scanf("%i",&b); }
    65. else if((speedy <= 135) && (speedy > 110)) Verbrauch=8.8;
    66. else if((speedy <= 110) && (speedy > 100)) Verbrauch=6.2;
    67. else if((speedy <= 100) && (speedy > 80)) Verbrauch=5.8;
    68. else if((speedy <= 80) && (speedy > 65)) Verbrauch=5.6;
    69. else if((speedy <= 65) && (speedy > 50)) Verbrauch=5.9;
    70. else if((speedy <= 50) && (speedy > 30)) Verbrauch=6.3;
    71. else if((speedy <= 30) && (speedy > 10)) Verbrauch=8.1;
    72. else if((speedy <= 10) && (speedy >= 1)) Verbrauch=10.1;
    73. else {printf("\nViel Spass dabei!\nBei dieser Fahrweise kommen Sie nicht weit\n");
    74. scanf("%i",&b);}
    75. km=Tankinhalt/Verbrauch*100;
    76. tanken=Entfernung/km;
    77. Zeit=Entfernung/speedy;
    78. Tage=Zeit/24;
    79. printf("\nBei dieser Fahrweise verbrauchen sie knapp %.1f Liter und \n"
    80. "kommen pro Tankf\201llung ca. %.1f Kilometer weit.\n"
    81. "Sie m\201ssten also %i mal tanken, um zum Mond zu gelangen!!\n\n"
    82. "Insgesamt ben\224tigen Sie f\201r diesen Trip %i Stunden,\nwas etwa %i Tage entspricht!\n"
    83. "Wollen Sie es nochmal versuchen 1-Ja; 2-Nein: \t",Verbrauch,km,tanken,Zeit,Tage);
    84. scanf("%i",&b);
    85. }
    86. while(b!=2);
    87. break;
    88. cin.get();
    89. }
    90. return 0;
    91. }
    Alles anzeigen