2016-09-29 2 views
0

Geben Sie den c-Code für eine Schleife an, die eine Summe von Zahlen berechnet und anzeigt, die der Benutzer eingibt. Die Schleife sollte den Benutzer zur Eingabe auffordern, bis der Benutzer -335 eingibt und dann die letzte Summe anzeigt und anzeigt.Schleifen der Summe von Zahlen (Eingaben) in C

Das ist was ich habe. Warum wird nicht gedruckt (Schleife verlassen), wenn ich -335 eingebe? Es fordert mich immer wieder auf, eine Nummer einzugeben.

#include <stdio.h> 


int main(void) 
{ 

int userNum; 
printf("Please enter an integer:\n"); 
scanf("%d", &userNum); 

while (userNum != -335){ 
    printf("Please enter an integer:\n"); 
    scanf("%d", &userNum); 
    userNum += userNum; 

} 

printf("%d", userNum); 


return 0; 
} 
+0

Sie * überschreiben * kontinuierlich die 'userNum' und verlieren dabei sowohl die ursprüngliche Eingabe * als auch * die berechnete Summe. Sie sollten Ihre Logik überdenken. –

+0

Wenn Sie in userNum scannen, ersetzen Sie den zuvor vorhandenen Wert. Es findet keine Zusammenfassung statt. Sie fügen einfach die Nummer hinzu, die Sie gerade eingegeben haben. Sie sollten einen separaten Platz zum Speichern der Eingabe oder der Summe haben. –

+0

Sie benötigen * zwei * Variablen: die Zahleneingabe und die Summe. –

Antwort

1

Sie benötigen eine zusätzliche Variable, um die Summe zu verfolgen. Ihre aktuelle Methode hält es überschrieben wird:

So fügen Sie eine Zeile:

int userNum; 
int sum = 0; // sum holds total variable 

und Sie hinzufügen und ändern:

while (userNum != 335){ 
    printf("Please enter an integer:\n"); 
    scanf("%d", &userNum); 
    sum += userNum; 
} 

printf("%d", sum); 
2

userNum Änderungen, nachdem Sie haben Eingang es in der Erklärung userNum += userNum;. -335 und -335 ist -670, nicht 335.

+0

danke. Weißt du, wie ich es beheben kann? Ich bin neu in der Programmierung –

1
while (userNum != 335){ 
printf("Please enter an integer:\n"); 
scanf("%d", &userNum); 
userNum += userNum; 

Sie die Eingabe durch den Benutzer in den letzten statement.Use eine separate Variable speichern Ergebnis geliefert zu verlieren.

0

Ihr Programm in einer while-Schleife hängen für immer, weil es gerade ist kein Glück, die Schleife zu brechen, weil es keine ganze Zahl * 2 = -335 gibt, gibt es nur float (-167.5).

  • gibt es eine in Millionen Chance, die Schleife zu brechen, wenn Sie userNum als float deklarieren so innerhalb der Schleife -167,5 eingeben:

    #include <stdio.h> 
    
    int main(void) 
    { 
    
        float userNum; 
        printf("Please enter an integer:\n"); 
        scanf("%G", &userNum); 
    
        while (userNum != -335){ 
         printf("Please enter an integer:\n"); // enter -167.5 
         scanf("%G", &userNum); 
         userNum += userNum; // -167.5 + (-167.5) = -335 which will cause while to exit 
    
        } 
    
        printf("%G", userNum); // -335 
    
        return 0; 
    } 
    

Ihr Problem zu lösen erklären eine neue Variable lassen Sie uns sagen summiere dann die Summe von UserNum und speichere das Ergebnis darin. Daher bleibt userNum während der Auswertung unverändert, wenn es -335 ist, während es beendet wird.

Verwandte Themen