Ich lerne C aus einem Buch namens "C by Example"Berechnungen Funktioniert nicht richtig
Am Ende jedes Kapitels ist eine Übung zu absolvieren. Wie Sie unten aus dem Code sehen können, ist die Übung an der Spitze geschrieben hier
/* Chapter 7 Review Exercises #2
- You are a college professor and you have to get the average grades for 10 students. Write a program which prompts you for 10 different grades and then
displays their average */
#include <stdio.h>
int main()
{
float score1, score2, score3, score4, score5, score6, score7, score8, score9, score10;
float average = score1+score2+score3+score4+score5+score6+score7+score8+score9+score10/10;
printf("Please input the scores of the students: \n");
scanf(" %f",&score1);
scanf(" %f",&score2);
scanf(" %f",&score3);
scanf(" %f",&score4);
scanf(" %f",&score5);
scanf(" %f",&score6);
scanf(" %f",&score7);
scanf(" %f",&score8);
scanf(" %f",&score9);
scanf(" %f",&score10);
printf("The average score is: %.2f" , average);
return 0;
}
Das Problem ist, dass die Zahlen jedes Mal, I-Eingang (wenn der Code ausgeführt wird) Es gibt mir immer eine große Zahl zurück (wie mindestens 20 Nummern lang)
Gibt es eine Möglichkeit, die Anzahl zu begrenzen, oder mache ich etwas falsch?
Könnten Sie bitte [mcve] bereitstellen? Es wäre einfacher zu beantworten, wenn wir Ihre Eingabe kennen würden. – xenteros
Sie müssen den "Durchschnittswert" ** nach der Eingabe seiner Komponentenwerte berechnen ...... Oder machen Sie "Durchschnitt" zu einer Funktion, die sie bei Bedarf immer neu liest. So wie es ist, ruft Ihr Programm undefiniertes Verhalten auf, indem es (10) nicht initialisierte Variable (n) liest und diese in "Durchschnitt" speichert, was nicht geändert wird, wenn einer der Punkte zählt. –
Ich gab Ihnen eine Antwort mit korrigiertem Code. Bitte zögern Sie nicht, es zu benutzen. Es wurde zweimal aufgestockt und zweimal von anderen Beantwortern abgelehnt, um ihre Antworten zu bewerben:/Es ist eine gute Übung, die richtige Antwort als Lösung mit dem grünen Häkchen zu markieren und die richtigen Antworten zu erhalten. – xenteros