[C/C++] Problem mit der If-Anweisung und dem goto

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Beogradjanin, 14. April 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 14. April 2007
    Problem mit der If-Anweisung und dem goto

    Hi, habe ein Problem mit dem unten aufgeführten Programm:

    Code:
    #include<stdio.h>
    #include<stdlib.h>
    
    char text, weitermachen, j, n;
    int a,b,c;
    
    main ()
    
    {
     anfang:
     
     printf("\n Geben Sie ein Wort oder eine Zahl ein: ");
     scanf("%s", &text);
     
     printf("\n\n Sie haben das Wort oder die Zahl: '%s' eingegeben.", &text);
     printf("\n\n -------------------------------------\n\n\n");
     
     printf(" Hiermit koennen Sie die eingegebene Zahl quadrieren!\n\n");
     printf(" Geben Sie Ihre gewuenschte Zahl ein: ");
     scanf("%i",&a);
     
     b=a*a;
     
     printf("\n %i zum Quadrat = %i\n\n", a,b);
     
     
     printf(" Wollen Sie weitermachen ( j = JA, n = NEIN ): "); [COLOR="Red"] /* Problem ab hier!! */[/COLOR]
     scanf("%c", &weitermachen);
     
     
     
     if (weitermachen == j)
     {
     
     
     system ("CLS");
     goto anfang;
     
     
     
     }
     
     else if (weitermachen == n)
     
     {
     
     system ("pause");
    }
     
     
     system ("pause");
     
     }
    
    
    
    
    
    Es tut mir leid, dass ich evtl. so noob Fragen stelle. Habe erst seit zwei Wochen (bzw. zwei Stunden Programmieren in C) und kenne mich sogut wie nicht aus, würde jedoch gerne experimentieren und was programmieren.

    Es kann sein, dass ich den unteren Teil inkl. der Variablen komplett falsch gemacht habe, bitte jedoch um Hilfe da ich im I-Net nix gescheites zu meinem oben genannten Problem finde.


    Also nochmal kurz das Problem:

    Würde gerne eine Abfrage starten, ob das Programm weiterhin ausgeführt werden soll und falls man " j " eingibt, dann soll man durch die goto schleife zum "anfang:" springen.
    Falls jedoch " n " eingegeben wird. Soll sich das Programm schließen.
     
  2. 14. April 2007
    AW: Problem mit der If-Schleife und dem goto

    if-schleife du meinst wohl eine if Anweisung. Es wäre gut wenn du dich genauer Ausdrücken könntest. Ansonsten wird der Tread hier sicherlich bald geclosed
     
  3. 14. April 2007
    AW: Problem mit der If-Schleife und dem goto

    Falsch: if (weitermachen == j)
    Richtig: if (weitermachen == 'j')
     
  4. 14. April 2007
    AW: Problem mit der If-Schleife und dem goto

    bool done = false;

    versuchs mal mit
    while (!done)
    {
    if (weitermachen=="n")
    {
    done=true;
    }

    // Programm Code
    }

    Erklärung die While schleife führt so lage das Programm aus bis du n drückst und die Bedinung erfüllt ist den bisherigen code musst du in die Schleife einbauen
     
  5. 14. April 2007
    AW: Problem mit der If-Anweisung und dem goto

    @jürgen:

    Tut mir leid, das sagt mir nicht viel was du da aufgeführt hast, da unser Professor uns in der letzten Stunde erst etwas über die If-Schleife erzählt hat. Also das, was ich gerade in dem Programm versuche, davon hat er sogut wie noch kein Wort erwähnt.


    p.s. Danke für den Hinweis, hab die Überschrift geändert!
     
  6. 14. April 2007
    AW: Problem mit der If-Schleife und dem goto

    Lass am Besten des GoTo ganz raus, macht dir nur den schönen Quelltext kaputt, bau lieber ne While-Schleife oder sowas drum, is viel praktischer.


    BB. Ch3c.
     
  7. 14. April 2007
    AW: Problem mit der If-Schleife und dem goto

    Mit "" gehts nicht. Dafuer brauchst du dann strcmp!
     
  8. 14. April 2007
    AW: Problem mit der If-Schleife und dem goto

    stimmt hab char mit string verwechselt
     
  9. 14. April 2007
    AW: Problem mit der If-Schleife und dem goto

    Einzelne Zeichen, wie gesagt in ', also:

    var == 'j'.

    Bei einer Zeichenkette dann mit strcmp, oder halt direkt:

    *(long*)var1 == *(long*)val2.
     
  10. 14. April 2007
    AW: Problem mit der If-Anweisung und dem goto

    Also bei mir klappts
    hier der Code:
    [scanf("%s",&weitermachen);]

    Code:
    #include<stdio.h>
    #include<stdlib.h>
    
    char text, weitermachen, j, n;
    int a,b,c;
    
    main ()
    
    {
     anfang:
    
     printf("\n Geben Sie ein Wort oder eine Zahl ein: ");
     scanf("%s", &text);
    
     printf("\n\n Sie haben das Wort oder die Zahl: '%s' eingegeben.", &text);
     printf("\n\n -------------------------------------\n\n\n");
    
     printf(" Hiermit koennen Sie die eingegebene Zahl quadrieren!\n\n");
     printf(" Geben Sie Ihre gewuenschte Zahl ein: ");
     scanf("%i",&a);
    
     b=a*a;
    
     printf("\n %i zum Quadrat = %i\n\n", a,b);
    
    
     printf(" Wollen Sie weitermachen ( j = JA, n = NEIN ): "); /* Problem ab hier!! */
     scanf("%s", &weitermachen);
    
    
    
     if (weitermachen == 'j')
     {
    
     printf("AAAA");
     system ("CLS");
     goto anfang;
    
    
    
     }
    
     else if (weitermachen == 'n')
    
     {
    
     printf("BBBBBBB");
     system ("pause");
     }
    
    
     system ("pause");
    
     }
    
     
  11. 14. April 2007
    AW: Problem mit der If-Anweisung und dem goto

    b=a*a;

    könnte man auch noch eleganter gestalten...
    wie wäre es mit b=pow(a,2) ?

    MFG TuXiFiED
     
  12. 14. April 2007
    AW: Problem mit der If-Anweisung und dem goto

    Wieso extra die math.h laden, nur wegen der einen Funktion, da wird nur die Binary größer.
    Sinnlos und unnötig.
     
  13. 14. April 2007
    AW: Problem mit der If-Anweisung und dem goto

    ok, habe jetzt das Problem gefunden. Hatte nach scanf anstatt "%s" "%c" eingegegben!

    Also so sieht es richtig aus:

    Code:
    printf(" Wollen Sie weitermachen ( j = JA, n = NEIN ): ");
     scanf("%s", &weitermachen);

    und bei der Abfrage anstatt

    Code:
    if (weitermachen == 'j')
    habe ich

    Code:
    if (weitermachen == j)
    geschrieben.

    So, vielen Dank an alle.
    Bewertungen gehen raus

    ~Closed~
     
  14. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.