Ich bin neu in der Codierung in C und versuche, den Durchschnitt des Arrays zu ermitteln, aber aus irgendeinem Grund wird es nicht berechnet, sondern es ergibt ein Ergebnis von 0,0.
Wie kann ich das beheben? Vielen Dank
#include <stdio.h>
float grades_average(float grades[7]);
int main() {
float grades[7]={98.8, 97.9, 99.3, 99.8, 99.6, 99.4, 99.9};
float average;
average = grades_average(grades);
printf("Average is: %.2f",average);
return 1;
}
float grades_average(float grades[7]){
int i;
float sum = 0;
float average = 0.0;
/* calculate the sum of grades using for loop*/
for(i = 0; i <= 7; i++){
sum = sum + grades[7];
}
average = sum/7;
return average;
}
Die Ausgabe ist:
Average is: 0.00
Minimale Änderungslösung:
float grades_average(float grades[7]){
int i;
float sum = 0;
float average = 0.0;
/* calculate the sum of grades using for loop*/
for(i = 0; i < 7; i++){
sum = sum + grades[i];
}
average = sum/7.f;
return average;
}
for(i = 0; i <= 7; i++){
zu for(i = 0; i < 7; i++){
. Gültige Angaben für Noten sind nur 0-6. 7 ist außerhalb der Grenzen.sum = sum + grades[7];
zu sum = sum + grades[i];
Sie müssen jedes Element überprüfen, nicht das (darüber hinaus) letzte.average = sum/7;
auf average = sum/7.f;
The .f
wird keine Ganzzahldivision sichergestellt. Dadurch bleibt die Dezimalstelle während der Division erhalten.Ich hoffe das hilft!
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen