Probleme mit AddierProgramm



  • hi,

    habe folgendes programm geschrieben, indem ich einen anfangswert und einen endwert eingebe und alle werte vom anfangs bis zum endwert werden zusammengerechnet.

    #include <stdio.h>
    
    long vonbis(long, long);
    
    void main()
    
    {
    
    long x, y, z;
    
    printf("Geben Sie eine Start-Zahl ein: ");
    scanf("%li", &x);
    fflush(stdin);
    
    printf("Geben Sie eine End-Zahl ein: ");
    scanf("%li", &y);
    fflush(stdin);
    
    z = vonbis(x, y);
    
    printf("\n\nErgebnis: %li\n\n", z);
    
    }
    
    long vonbis(long x, long y)
    
    {
    long index, summe;
    
    for( index = x, summe = 0; index = y; x++)
    summe = index + summe;
    
    return(summe);
    
    }
    

    also das programm kompiliert ohne fehler und ohne warnung. jedoch wenn ich es starte kann ich den anfangs und den endwert eingeben und dann passiert nichts mehr. kann mir jemand sagen woran das liegt?



  • schau dir die bedingung in deiner for schleife an (mittleres argument)
    dort muss etwas wie <= oder ähnliches stehen 😉

    ps: und zähl nicht x++ hoch, sondern index++, sonst hängt dein index immer auf der gleichen stelle, und du hast eine endlosschleife.



  • Ja Elise hat Recht deine for-Schleife ist keine richtige for-Schleife.
    Aber was meinst du mit allen Werten von Anfang bis Schluss werden addiert?
    Soll das heißen, wenn Anfang==1 und Schluss==3, dann ist das Ergebnis 6, oder?

    In dem Fall würde das Programm so aussehen:

    #include <stdio.h> 
    
    int main(void) 
    { 
    
    int x, y;
    int i;
    int summe=0; 
    
    printf("Geben Sie eine Start-Zahl ein: "); 
    scanf("%d", &x); 
    fflush(stdin); 
    
    printf("Geben Sie eine End-Zahl ein: "); 
    scanf("%d", &y); 
    fflush(stdin); 
    
    y++;
    for(;x<y;x++)
    {
            summe=summe+x;
    }
    
    printf("\n\nErgebnis: %d\n\n", summe); 
    
    system("Pause");
    }
    

    ________________________

    www.c-programmieren.com



  • ja genau anfang = 1 ende = 3 --> rechnung = 1 + 2 + 3

    vielen dank jetzt funzt es!!



  • Nebenbemerkung: "void main()" und "fflush(stdin);" solltest du dir gar nicht erst angewöhnen. Die sind beide nicht standardkonform.


Log in to reply