verzweifelte Fehlersuche (C)

Tutorials.at
Verfügbare Informationen zu "verzweifelte Fehlersuche (C)"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Hannibal93 - Dubbel - exbs - detewe89 - DrPhil_Guth
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: C / C++
  • Antworten: 9
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: verzweifelte Fehlersuche (C)
  • Letzte Antwort: vor 16 Jahren, 9 Monaten, 9 Tagen, 19 Stunden, 31 Minuten
  • Alle Beiträge und Antworten zu "verzweifelte Fehlersuche (C)"

    Re: verzweifelte Fehlersuche (C)

    Hannibal93 - 17.06.2007, 14:29

    verzweifelte Fehlersuche (C)
    Ich bin noch n Anfänger beim proggen in C und suche in folgendem Quellcode verzweifelt den Grund warum die Variable b immer -16348 ist und nicht das was der Benutzer eingibt (mit 50, 100 und 1000 getestet):
    Code:
    #include <stdio.h>
    #include <conio.h>

    int main()
    {
    unsigned long int a, b, c, ergebnis=0;
    clrscr();

    printf ("Dieses Programm berechnet die Summe aller Zahlen von Zahl a bis Zahl b!");

    printf ("\n\nGeben sie Zahl a ein!\n");

    scanf ("%d",&a);

    printf ("\nGeben sie Zahl b ein!\n");

    scanf ("%d",&b);  /*in etwa hier muss der Fehler liegen!*/

    printf ("Das Programm berechnet jetzt die Summe aller Zahlen von %d bis %d!",a,b);        /*hier ist es schon falsch*/

    for (c=a;c<=b; c++)
    {                            /*anfang des "for"blocks*/

    ergebnis=ergebnis+c;

    }                          /*ende des "for"blocks*/

    printf ("\n\nDie Summe aller Zahlen von %d bis %d lautet: %d",a,b,ergebnis);

    printf ("\nZum Beenden beliebige Taste drücken!");

    getch ();
    return 0;
    }


    hoffe das is übersichtlich genug und ihr könnt mir weiterhelfen... danke im Voraus!
    Wenn das einmal fertig ist soll es ein Tool zum berechnen der Summe aller Zahlen von a bis b werden funktioniert bloß eher schlechter als besser...


    ach ja: mein Compiler ist Turbo C und ich arbeite unter Windows (ME)



    Re: verzweifelte Fehlersuche (C)

    Dubbel - 17.06.2007, 16:19


    Du hattest einen kleinen Logik Fehler:

    Code: for (c=a;c<=b; c++)
    {                            /*anfang des "for"blocks*/
    ergebnis++;
    }

    So muss die for Schleife aussehen.

    Du hattest ja vorher
    Code:
    for (c=a;c<=b; c++)
    {                            /*anfang des "for"blocks*/

    ergebnis=ergebnis+c;

    }
    Aber da muss ja das ERgebnis viel zu hoch sein.

    Nehmen wir 1 und 4 als a und b.
    ZUerst wird c auf 1 gesetzt, dann wird geprüft, ob b größer ist. ist es nicht. Also ist das ergebnis 0+1=1. Dann nochmal das Ganze. Da ERgebnis ja schon 1 ist, und nun nochmal +c, also +2 (das c ja ++ gesetzt wurde oben in der schleife) also ist ERgebnis schon 3.

    Usw... :wink:



    Re: verzweifelte Fehlersuche (C)

    exbs - 17.06.2007, 17:03


    Hab deinen Code ausprobiert. Der funktioniert doch. Bei mir kommt auch keine negative Zahl. Dies würde nämlich zum Bsp bedeuten, dass du einmal die höchst mögliche Belegung erreicht hast, da es aber "unsigned" ist, ist auch das nicht der Grund.



    Re: verzweifelte Fehlersuche (C)

    Hannibal93 - 17.06.2007, 17:05


    dann hätt ich doch am Ende ergebnis=c, ich wollte aber bei deinem Beispiel a=1 und b=4 dass er mir rechnet 1+2+3+4, als ergebnis würde ich also 10 haben wollen...
    ich habe übrigens den Verdacht dass mit b etwas nicht stimmt, wenn ich das mit meinem Code durchlaufen lasse habe ich schon bei
    Code: printf ("Das Programm berechnet jetzt die Summe aller Zahlen von %d bis %d"a,b)
    nicht den Wert für b den ich vorher eingegeben hatte (als user) sondern irgendwas anderes
    kann auch sein dass ich dich jetzt falsch interpretiert hab aber ich glaub das Problem besteht immernoch...


    ich geb euch mal meinen Ausgabebildschirm mit dem ursprünglichen Code:

    Code: Dieses Programm berechnet die Summe aller Zahlen von Zahl a bis Zahl b!

    Geben sie Zahl a ein!
    1

    Geben sie Zahl b ein!
    4
    Das Programm berechnet jetzt die Summe aller Zahlen von 1 bis -16384!

    Die Summe aller Zahlen von 1 bis -16384 lautet: 4
    Zum Beenden beliebige Taste drücken!



    Re: verzweifelte Fehlersuche (C)

    Dubbel - 17.06.2007, 17:27


    Oh, ja...hatte die Summe aller Zahlen falsch interpretiert ^^

    Aber bei mir funktioniert das Programm ohne Probleme.

    Vielleicht solltest du mal einen neueren Compiler benuten, ich empfehle Dev Cpp 4.9.9.2, damit müsste das klappen :wink:



    Re: verzweifelte Fehlersuche (C)

    detewe89 - 17.06.2007, 17:54


    bei mir meckert der compiler auch bei der formatspezifikation %d.

    da du die variablen ja als long unsigned definiert hast, musst du auch in den scanf- und printf-formaten immer %lu angeben, vllt. lag's ja sogar daran?

    schreib also z. b. statt

    Code: printf ("\n\nDie Summe aller Zahlen von %d bis %d lautet: %d",a,b,ergebnis);

    lieber so:

    Code: printf ("\n\nDie Summe aller Zahlen von %lu bis %lu lautet: %lu",a,b,ergebnis);

    lu steht für "long unsigned"



    Re: verzweifelte Fehlersuche (C)

    Hannibal93 - 17.06.2007, 19:06


    Daran lags, danke, jetz klappts bestenstens :lol:
    auch danke an alle anderen die versucht haben mir zu helfen!
    liebe admins: ich glaube hier kann geclosed werden... 8)



    Re: verzweifelte Fehlersuche (C)

    DrPhil_Guth - 18.06.2007, 08:09


    Gut, dass dir geholfen werden konnte, aber hier wird nicht geclosed. Geclosed wird, wenn in einem thread nur sinnloses geschrieben wird. Ansonsten bleibt er offen. (Kann ja anfänger geben mit dem Gleichen Problem)



    Re: verzweifelte Fehlersuche (C)

    Hannibal93 - 18.06.2007, 15:32


    na dann eben nich, is mir auch relativ egal, mein prob is ja gelöst :lol:



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    erkenung - + * / - gepostet von AQE89 am Sonntag 16.07.2006
    C++ Lernen - gepostet von Nightm4r3 am Mittwoch 20.09.2006
    öffnen von dateien mit variablen namen - gepostet von Martix391 am Montag 12.06.2006
    Projekt: SuperMario64 - Nachfolger - gepostet von vpascal am Samstag 09.06.2007
    problem mit tutorial - gepostet von Slayer!!!! am Sonntag 20.08.2006
    Übersetzter - gepostet von Bratwurst am Donnerstag 06.09.2007
    Tipps? - gepostet von CRASH am Samstag 21.10.2006
    Mein erstes Projekt. Brauche Hilfe - gepostet von orluk am Mittwoch 25.07.2007
    Begrenzte Darstellungsgenauigkeit! - gepostet von Kimi am Dienstag 06.11.2007



    Ähnliche Beiträge wie "verzweifelte Fehlersuche (C)"

    Fehlersuche - AdonisBeatz aka Mc S (Dienstag 16.05.2006)
    Verzweifelte Männer - Kiki (Dienstag 08.05.2007)
    Fehlersuche - Kiwako (Sonntag 23.09.2007)
    Verzweifelte Zeilen- Reviews - heimatskind (Freitag 15.09.2006)
    Fehlersuche :) - Mary (Mittwoch 22.11.2006)
    Obi und der verzweifelte Björn - Rumplroyal (Dienstag 16.05.2006)
    2x20 Verzweifelte Gebete (It Wasn't Meant to Happen) - fallenangel (Montag 09.10.2006)
    Stahlfelgen vom Yaris - Volcano (Mittwoch 17.08.2011)
    Der Verzweifelte Versuch einen G50+3 IMP Stick zu vermitteln - Schnee (Samstag 23.06.2007)
    °° Fiat Panda Elektrik Fehlersuche Reparaturen Extras - Panda_Jagd (Donnerstag 24.05.2007)