C Anfängerfrage: Wer wird Millionär

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

  • C Anfängerfrage: Wer wird Millionär

    Ich sowas wie Wer wird Millionär schreiben komme hier aber nich weiter.
    Ich hab mir ein e- book runter geladen da steht ein Beispiel drinnen:

    Quellcode

    1. #include <stdio.h>
    2. void main(void)
    3. { short x = 5; if(x == 3)
    4. printf("\nDie Bedingung x == 3 ist erfüllt");
    5. else
    6. printf("\nDie Bedingung x == 3 ist nicht erfüllt");
    7. }


    Und ich wills so machen:

    Quellcode

    1. #include <stdio.h>
    2. void main ()
    3. {
    4. short b = b;
    5. printf("Frage Nr1. 100 Euro");
    6. printf("\n\nPeter Kreuder komponierte 1936 den Schlager Ich wollt' ich wär' ein...");
    7. printf("\n\nAntwort A) Hund B) Huhn C) Hummer D) Huflattich: ");
    8. scanf("%d");
    9. if()
    10. printf("\n a,c,d Die Antwort war leider falsch");
    11. else
    12. printf("\n b Die Antwort b ist richtig");
    13. }
    Alles anzeigen


    Wenn die frage richtig ist soll (Die Antwort b is richtig) kommen und wenn sie falsch ist (Die Antwort war leider falsch).

    Kann mir irgend jemand helfen

    Sry man sieht das ich anfänger bin

    mfg vapor
  • ich hab das mal schnell gemacht:

    Quellcode

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. int main(void)
    4. {
    5. char antwort;
    6. printf("Frage Nr 1: 100 Euro");
    7. printf("\n\nPeter Kreuder komponierte 1936 den Schlager Ich wollt' ich waer' ein...");
    8. printf("\n\nAntwort \n\tA) Hund \tB) Huhn \n\tC) Hummer \tD) Huflattich\n");
    9. scanf("%c",&antwort);
    10. if('b' == antwort)
    11. printf("\n Die Antwort ist richtig!\n\n");
    12. else
    13. printf("\n Die Antwort ist leider falsch!\n\n");
    14. system("pause");
    15. return(0);
    16. }
    Alles anzeigen

    es ist immer besser, eine main() als int zu definieren, und als rückgabewert 0 zurückzugeben.
    system("pause"); bewirkt, dass das programm nich gleich wieder geschlossen wird.
    scanf("%d"); kannst du so nicht schreiben. du musst einen ort angeben, in dem der gelesene wert gespeichert werden soll. das %d steht für einen dezimalen wert, da du aber buchstaben verwendest, musst du %c für charakter benutzen ;)
    die stdlib.h wird gebraucht, damit du system(); benutzen kannst.

    das müsste es erstmal gewesen sein *gg*
    es gibt halt noch probleme, wenn der user eine zahl eingibt ... aber das sollte dich erstmal noch nicht stören :) und da du nur eine scanf() anweisung hast, brauchst auch den puffer nicht löschen.
    das kannst später immernoch lernen 8)

    mach weiter so ;)
  • Mist komme jetzt schon wieder nich weiter

    #include<stdio.h>
    #include<stdlib.h>

    int main(void)
    {
    char antwort;

    printf("Frage Nr 1: 100 Euro");
    printf("\n\nPeter Kreuder komponierte 1936 den Schlager Ich wollt' ich waer' ein...");
    printf("\n\nAntwort \n\tA) Hund \tB) Huhn \n\tC) Hummer \tD) Huflattich\n");
    scanf("%c",&antwort);

    if('b' == antwort)
    printf("\n Die Antwort ist richtig!\n\n");
    else
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("pause");
    return(0);
    }


    Wie kann ich denn hier die nächste frage beginnen in meinem e-book steht das man verschieden Programmblöcke machen muss ich habs versucht aber dann kommen immer fehler das is das letzte was ich hier bei nich verstehe.

    Vielen dank schon im voraus und für die erste antwort auch nochmal:)
  • du könntest alles in einer do while-schleife schreiben
    so in der art:

    do {
    ...
    frage 1
    ...
    frage 2
    ...
    frage 3
    ...
    } while(antwort ist richtig)

    will dir die lösung nich vorgeben, lass dir mal was einfallen =)

    falls du aber trotzdem noch fragen hast, dann frag :wink:
  • Da bin ich wieder ich komme nich weiter :(
    Alles ist gut solange ich die richtige antwort gebe Es steht "Antwort richtig" und es geht schön weiter. Aber wenn ich was falsches eingebe kommt "Antwort flasch und es geht trozdem weiter brauche da mal bitte hilfe was muss ich ändern?

    #include<stdio.h>
    #include<stdlib.h>

    int main(void)
    {
    char antwort;


    /*Frage NUMMER 1*/
    do{
    printf("Frage Nr 1: 100 Euro");
    printf("\n\nPeter Kreuder komponierte 1936 den Schlager Ich wollt' ich waer' ein...");
    printf("\n\nAntwort \n\tA) Hund \tB) Huhn \n\tC) Hummer \tD) Huflattich\n");
    scanf("%c",&antwort);
    if('b' == antwort)
    printf("\n Die Antwort ist richtig!\n\n);
    else
    printf("\n Die Antwort ist leider falsch!\n\n");
    }while ('b' == antwort);


    printf("Frage Nr 2: 200 Euro");
    printf("\nWobei handelt es sich um ein Notsignal im internationalen Funkverkehr?");
    printf("\n\nAntwort \n\tA) Mayday \n\tB) Down Town \n\tC) Jetset \n\tD) Flower Power");
    scanf("%c",&antwort);
    if('b' == antwort)
    printf("\n Die Antwort ist richtig!\n\n");
    else
    printf("\n Die Antwort ist leider falsch!\n\n");

    system("pause");

    return(0);
    }
  • wenn du das so machst, dann wird in der do while-schleife überprüft, ob es ein abbruchkriterium gibt (auf frage 1 bezogen). die schleife wird ausgeführt, und es wird weiter mit frage 2 gemacht.
    du musst die schleife um alles setzen:



    Quellcode

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. int main(void)
    4. {
    5. char antwort;
    6. int richtig=0;
    7. /*Frage NUMMER 1*/
    8. printf("Frage Nr 1: 100 Euro");
    9. printf("\n\nPeter Kreuder komponierte 1936 den Schlager Ich wollt' ich waer' ein...");
    10. printf("\n\nAntwort \n\tA) Hund \tB) Huhn \n\tC) Hummer \tD) Huflattich\n");
    11. do {scanf("%c",&antwort);} while (getchar()!='\n');
    12. if('b' == antwort)
    13. {
    14. printf("\n Die Antwort ist richtig!\n\n");
    15. }
    16. else
    17. {
    18. printf("\n Die Antwort ist leider falsch!\n\n");
    19. system("PAUSE");
    20. return(0);
    21. }
    22. system("cls");
    23. /*Frage NUMMER 2*/
    24. printf("Frage Nr 2: 200 Euro");
    25. printf("\nWobei handelt es sich um ein Notsignal im internationalen Funkverkehr?");
    26. printf("\n\nAntwort \n\tA) Mayday \n\tB) Down Town \n\tC) Jetset \n\tD) Flower Power\n");
    27. do {scanf("%c",&antwort);} while (getchar()!='\n');
    28. if('a' == antwort)
    29. {
    30. printf("\n Die Antwort ist richtig!\n\n");
    31. }
    32. else
    33. {
    34. printf("\n Die Antwort ist leider falsch!\n\n");
    35. system("PAUSE");
    36. return(0);
    37. }
    38. system("PAUSE");
    39. return(0);
    40. }
    Alles anzeigen


    do {scanf("%c",&antwort);} while (getchar()!='\n');
    diese zeile sorgt dafür, dass das vorige zeichen im puffer erst gelöscht wird, sonst erkennt er es beim nächsten scanf()-befehl nicht richtig.

    das mit der do while-schleife kannst weglassen. mach das so :D is einfacher, und bei einer falschen eingabe wird das programm beendet.

    system("cls") macht nen clearscreen.

    bei fragen frag weiter ... und zeig mal das programm, wenn es fertig ist :wink:


    edit:
    das ist außerdem kein c++ sondern nur c :lol:
  • So bin fertig geworden läuft ganz gut soweit wenns noch was zu verbessern gibt wurd mich freuen ,wenn ihr es rein schreibt und noch mal vielen dank an zilb=D

    sry das ich es einfach so rein kopiere ich weiß nich wie es geht damit es so Bund wird:(

    #include <stdio.h>
    #include <stdlib.h>

    int main(void)
    {
    char antwort;
    int richtig;

    /*Frage NUMMER 1*/
    printf("Frage Nr 1: 100 Euro");
    printf("\n\nPeter Kreuder komponierte 1936 den Schlager Ich wollt' ich waer' ein...");
    printf("\n\nAntwort \n\tA) Hund \tB) Huhn \n\tC) Hummer \tD) Huflattich\n");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('b' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);
    }

    system("cls");
    /*Frage NUMMER 2*/
    printf("Frage Nr 2: 200 Euro");
    printf("\n\nWobei handelt es sich um ein Notsignal im internationalen Funkverkehr?");
    printf("\n\nAntwort \n\tA) Mayday \tB) Down Town \n\tC) Jetset \tD) Flower Power\n");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('a' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);
    }

    system("cls");
    /*Frage NUMMER 3*/
    printf("Frage Nr 2: 300 Euro");
    printf("\n\nWie heisst - laut einem Mearchen der Brueder Grimm - die Schwester von \nSchneeweisschen?");
    printf("\n\nAntwort \n\tA) Fliederlila \tB) Maisgelb \n\tC) Rosenrot \tD) Kornblumenblau\n");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('c' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0); }

    system("cls");
    /*Frage NUMMER 4*/
    printf("Frage Nr 4: 500 Euro");
    printf("\n\nWer hat von Berufs wegen mit dem Spritzenhaus zu tun?");
    printf("\n\nAntwort \n\tA) Geartner \tB) Krankenschwester \n\tC) Feuerwehrmann \tD) Konditor\n ");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('c' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);}

    system("cls");
    /*Frage NUMMER 5*/
    printf("Frage Nr 5: 1.000 Euro");
    printf("\n\nWie heisst die Amtssprache von Mexiko?");
    printf("\n\nAntwort \n\tA) Portugiesisch \tB) Englisch \n\tC) Franzosisch \tD) Spanisch\n ");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('d' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);}


    /*Frage NUMMER 6*/
    system("cls");
    printf("Frage Nr 6: 2.000 Euro");
    printf("\n\nUnter welchem Namen sangen Wigald Boning und Olli Dittrich \"Lieder, die die Weltnicht braucht\"?");
    printf("\n\nAntwort \n\tA) Die Behammerten \tB) Die Abgedrehten \n\tC) Die Doofen \tD) Die Irren\n ");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('c' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);}

    /*Frage NUMMER 7*/
    system("cls");
    printf("Frage Nr 7: 4.000 Euro");
    printf("\n\nWas ist ein Rebus?");
    printf("\n\nAntwort \n\tA) Kreditinstitut \tB) Werkzeug \n\tC) Weinstock \tD) Bilderratsel\n");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('d' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);}

    /*Frage NUMMER 8*/
    system("cls");
    printf("Frage Nr 8: 8.000 Euro");
    printf("\n\nWie nennt man von Gletschern transportierten Gesteinsschutt?");
    printf("\n\nAntwort \n\tA)Moreane \tB)Mureane \n\tC)Morelle \tD)Murnau\n");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('a' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);}

    /*Frage NUMMER 9*/
    system("cls");
    printf("Frage Nr 9: 16.000 Euro");
    printf("\n\nWelches deutsche Furstenhaus organisierte bis ins 19. Jahrhundert die kaiserliche Reichspost?");
    printf("\n\nAntwort \n\tA) Furstenberg \tB) Schaumburg-Lippe \n\tC) Hohenlohe \tD) Thurn und Taxis\n");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('d' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);}

    /*Frage NUMMER 10*/
    system("cls");
    printf("Frage Nr 10: 32.000 Euro");
    printf("\n\nWobei handelt es sich nicht um ein Insekt?");
    printf("\n\nAntwort \n\tA) Stechmucke \tB) Wintermucke \n\tC) Grasmucke \tD) Kriebelmucke\n");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('c' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);}

    /*Frage NUMMER 11*/
    system("cls");
    printf("Frage Nr 11: 64.000 Euro");
    printf("\n\nWie heisst das traditionelle Pferderennen in Siena?");
    printf("\n\nAntwort \n\tA) Calcio \tB) Palio \n\tC) Barolo \tD) Boccia\n");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('b' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);}

    /*Frage NUMMER 12*/
    system("cls");
    printf("Frage Nr 12: 125.000 Euro");
    printf("\n\nWas ist nach Mahon, dem Hauptort der Insel Menorca, benannt?");
    printf("\n\nAntwort \n\tA) Marone \tB) Mahagoni \n\tC) Marihuana \tD) Mayonnaise\n");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('d' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);}

    /*Frage NUMMER 13*/
    system("cls");
    printf("Frage Nr 13: 250.000 Euro");
    printf("\n\nWelcher deutsche Boxer schlug im Juni 1952 den Ringrichter Max Pippow zu Boden?");
    printf("\n\nAntwort \n\tA) Peter Muller \tB) Eckhard Dagge \n\tC) Bubi Scholz \tD) Max Schmeling\n");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('a' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);}

    /*Frage NUMMER 14*/
    system("cls");
    printf("Frage Nr 14: 500.000 Euro");
    printf("\n\nWo befindet sich der Hauptsitz der UNESCO?");
    printf("\n\nAntwort \n\tA) Brussel \tB) Paris \n\tC) London \tD) Helsinki\n");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('b' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);}

    /*Frage NUMMER 15*/
    system("cls");
    printf("Frage Nr 15: 100.000 Euro");
    printf("\n\nMit wem stand Emund Hillary 1953 auf dem Gipfel des Mount Everest?");
    printf("\n\nAntwort \n\tA) Nasreddin Hodscha \tB) Nursay Pimsorn \n\tC) Tenzing Norgay \tD) Abrindranath Singh\n");
    do {scanf("%c",&antwort);} while (getchar()!='\n');
    if('c' == antwort)
    {
    printf("\n Die Antwort ist richtig!\n\n");
    }
    else
    {
    printf("\n Die Antwort ist leider falsch!\n\n");
    system("PAUSE");
    return(0);}

    printf("HERZLICHEN GLUCKWUNSCH SIE HABEN 1 Million EURO GEWONNEN");
    return(0);}