Hilfe !!! mein erster fersuch in C

  • Hi
    Seid heute versuche ich mir Autodidaktisch die C Sprache beizubringen und sofort am Anfang habe ich Probleme mit einfachem Code.
    Vielleicht jemand kann kurz reinschauen und feststellen was ich den da Falsch mache .

    Problem: Bei der Eingabe von zwei Zahlen soll eine Ausgabe mit einem Bewertung über die Größe der Beiden Zahlen statt finden .

    Nun komische weise bei der Eingabe von a=2 und b=3 kommt mir bei der Ausgabe das dass a ist sogar Doppel so klein.
    Ist aber nicht .
    Aber warum ?
    Hier der Code

    #include <stdio.h>

    void main(void)
    {
    int a;
    int b;

    printf("geben sie die Erste zahl ein :\n");
    scanf("%i", &a);
    printf("geben Sie die zweite zahl ein :\n");
    scanf("%i", &b);


    if (a==b)
    {
    printf("die Beide Zahlen sind gleich gross\n");
    }
    else
    {
    if (a>b)
    {
    if (a >= 2 *b)
    {
    printf("a ist sogar 2x so gross\n");
    }
    else
    {
    printf("a ist grosser als b\n");
    }
    }
    if (a < b)
    {
    if(a <= 2 * b)
    {
    printf("a ist sogar Doppel so klein\n");
    }
    else
    {
    printf("a ist kleiner als b\n");
    }
    }
    }
    }

  • Ich kann kein C aber ich würde mal sagen es gehört statt:

    Code
    if(a <= 2 * b)
    {
    printf("a ist sogar Doppel so klein\n");
    }


    das hier:

    Code
    if(b <= 2 * a)
    {
    printf("a ist sogar Doppel so klein\n");
    }



    Wenn a kleiner als b ist ist doch a immer kleiner als 2 mal b
    Hoffe das stimmt
    lg leviathan

    Theorie ist, wenn man alles weiß und nichts funktioniert
    Praxis ist, wenn alles funktioniert und keiner weiß warum
    Organisation ist, wenn nichts funktioniert und alle wissen warum

  • Hi
    Also ich habe auch keine Ahnung von C aber nach meinen Kenntnissen würde ich dein Vorschlag
    if(b <= 2 * a)
    {
    printf("a ist sogar Doppel so klein\n");
    }
    so interpretieren:
    "wenn B ist Doppel oder noch mehr als Doppel so klein dann "
    "schreibe a ist sogar Doppel so klein „
    also meine Meinung nach passt das irgend wie nicht.
    Vor allem dein Vorschlag wurde schon in dem Code hier Berücksichtigt:

    if (a>b)
    {
    if (a >= 2 *b)
    {
    printf("a ist sogar 2x so gross\n");
    }

    Oder was meins du?
    Gruß
    Mirek

  • :hewa: sorry hab mcih verschrieben mein natürlich

    Code
    if(b>=2*a)


    Tja tippen sollte man können.
    lg leviathan

    Theorie ist, wenn man alles weiß und nichts funktioniert
    Praxis ist, wenn alles funktioniert und keiner weiß warum
    Organisation ist, wenn nichts funktioniert und alle wissen warum

  • Tool :thumb:
    Es Funktioniert. :verycool:
    Der Fehler war das dass ich
    (a<= 2*b) und (b >= 2*a) als das gleichen Ausdruck betrachtet habe was aber nicht war ist.
    Interessante weise diese Code stehet in einem Schulbuch für Fachinformatik “C Programmierung lernen“ auf Seite 67 von Andre Willms von Addison -Wesley Verlag auch mit anderen Fehlern die ich schon herausgefiltert habe. :traurig:
    Ich will ja auch keinem Schuld zuweisen aber ich habe Stunden über dem Code gesessen und ich dachte dass ich langsam verblöden werde. :hewa:

    Danke nochmals für diene Hilfe :)
    Gruß
    Mirek

  • > Hilfe !!! mein erster fersuch in C

    WOA, das war die "Rechtschreibungswatsche" des Tages ;). Ich nehm jetzt mal an, das war ein Tippfehler, da das "f" und "v" so nah aneinanderliegen ... bitte sag mir es war ein Tippfehler ;)

    scnr phlow

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!