2016-09-01 4 views
-2

Ich habe versucht, die Summe von 5 Zahlen (in C-Sprache) mit Tutorials von "thenewboston" auf Youtube zu finden. Mein Code ist:C-Programm wird nicht korrekt hinzugefügt, wenn ein Array durchlaufen

int main(int argc, char *argv[]) { 
    int a, b, c, d, e; 
    int array[5]={a, b, c, d, e}; 
    int sum=0; 
    int i; 
    int j; 

    printf("Enter your 5 numbers: "); 
    scanf("%d, %d, %d, %d, %d", &a, &b, &c, &d, &e); 

    for (i = 0; i < 5; i++){ 
     sum+=array[i]; 
    } 

    printf("The sum of 5 numbers is:%d",sum); 
    return 0; 
} 

Aber das Seltsame war, nein, was Sache 5 Zahlen ich eintrat, bekam ich immer die Summe als 48.

+1

Haben Sie versucht das Debuggen? Was ist der Wert von 'a',' b', 'array [0]' etc ...? – John3136

+0

Bitte beißen Sie die Lernenden nicht. Zeiger zu lernen ist schwer. –

+0

Wie kann ich sie in diesem Array im selben Format speichern? Ich habe gesehen, dass Bucky in seinen Tutorials genauso vorgegangen ist, aber er hat Zahlen anstelle von Variablen eingegeben. –

Antwort

0

Sie speichern nicht a, b, c, d, oder e in das Array array. Sie müssen sie im Array speichern, nachdem Sie sie eingelesen haben.

Ihre Deklaration array erstellt kein Array von Zeigern zu Ihren Variablen - es erstellt einen einzelnen Zeiger auf einen zusammenhängenden Block von fünf ganzzahligen Feldern. Sie können diese Array-Felder nicht aktualisieren, indem Sie nur die Adressen a usw. verwenden, da Ihr Array nicht auf sie zeigt.

Die naheliegendste, klar und einfach Weg, um sie in dem Array zu speichern (was ich empfehlen) ist:

array[0]=a; 
array[1]=b; 
array[2]=c; 
array[3]=d; 
array[4]=e; 

dies vor dem Beginn Ihrer for Schleife gerade tun. Entweder

+0

Wie kann ich sie in diesem Array im selben Format speichern? –

+0

Ich habe meine Antwort bearbeitet, um zu erklären, wie. –

+0

tat ich, aber es gab immer noch den gleichen Wert zurück –

1

Variablen verwerfen a, b, c, d, e und die array bleibt oder umgekehrt

entfernen Variablen auf Ihrem ersten printf:

print("Enter 5 numbers: "); 

keine Variablen setzen, wenn Sie sie did't verwenden.

Wenn Sie scanf als scanf("%d, %d", &var1, &var2); setzen, müssen Sie Eingabe auch das gleiche Format wie

Enter 5 numbers: 10, 20 

Arbeitsbeispiel (effizienter mit Array):

int main() { 
    int input[5]; 
    int sum; 

    printf("Enter 5 numbers: "); 
    scanf("%d, %d, %d, %d, %d", &input[0], &input[1], &input[2], &input[3], &input[4]); 

    int i; 
    for (i = 0; i < 5; i++) { 
     sum += input[i]; 
    } 

    printf("The sum is %d", sum); 
    return 0; 
} 
Verwandte Themen