[beantwortet]Segmentation Fault



  • Bei der Eingabe von Zahlen, die ueber die Darstellung des int hinausgehen bekomme ich in der ersten while Schleife einen Segmentation Fault. Ist jemand so nett und kann mir meinen Fehler aufzeigen?

    Gruss, Til

    #include <stdio.h>
    int main (void){
    
    int eingabe1=0,eingabe1alt=0,qsumme1=0,eingabe2=0,eingabe2alt,qsumme2=0;
    
    printf("Bitte zwei ganze Zahlen mit komma getrennt eingeben und Enter druecken\n\nEingabe: ");
    
    scanf("%i,%i",&eingabe1,&eingabe2);
    while((eingabe1==2147483647)||(eingabe2==2147483647)){
    	printf("Die Eingegebene Zahl war zu gross, der hoechste Wert fuer eine einzugebende Zahl ist 2147483646");
    	scanf("%i,%i",eingabe1,eingabe2);
    }
    eingabe1alt=eingabe1; /*eingabe1 und eingabe2 bekommen durch die While Schleife den Wert 0, am Ende des Programms moechte man die urspruengliche Eingabe allerdings anzeigen, deswegen wird hier eine Kopie gemacht*/
    eingabe2alt=eingabe2;
    
    while(eingabe1!=0){ /*Algorythmus, der immer die ganz rechts stehende Zahl auf qsumme1 addiert, danach zwei Stellen weiter das gleiche macht und das solange, bis eingabe1 den Wert null hat*/
    	qsumme1=qsumme1+(eingabe1%10);
    	eingabe1=eingabe1/100;
    }
    
    while(eingabe2!=0){/*siehe oben*/
    	qsumme2=qsumme2+(eingabe2%10);
    	eingabe2=eingabe2/100;
    }
    
    if (qsumme1==qsumme2){	/*Wenn die beiden Quersummen identisch sind...*/
    printf("Die Quersummen ueber die geraden Stellen der Zahlen %i und %i sind %i und %i, stimmen also ueberein\n",eingabe1alt,eingabe2alt,qsumme1,qsumme2);
    }
    /*...andernfalls:*/
    else printf("Die Quersummen ueber die geraden Stellen der Zahlen %i und %i sind %i und %i, stimmen also nicht ueberein\n",eingabe1alt,eingabe2alt,qsumme1,qsumme2);
    
    return 0;
    }
    


  • Du hast bei dem scanf in der while-Schleife den &-Operator für eingabe1/eingabe2 vergessen.



  • Vielen Dank dir! Ich dachte ich habe einen Fehler in der while Bedingung.. War ein bisschen weiter unten 😉


Anmelden zum Antworten