저는 아직 초보자이기 때문에이 프로그램에서 약간의 문제가 있습니다. 모든 것은 배열 등급 []에 대한 요소로 사용되는 입력 값의 평균을 계산할 때까지 정상적으로 작동합니다.내 프로그램은 입력 된 배열 요소의 평균을 취하지 않을 것입니다.
출력은 각 학생의 입력 학년 옆에 학생 번호 1 ~ 5가 나열된 표입니다. 학생 번호와 성적을 잘 표시 할 수 있지만 프로그램이 평균을 올바르게 계산하지 못하는 것 같습니다. 도와주세요?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
float grade[5];
int n;
for(n=1; n<=5; n++){
printf("Enter grade %d between 0 and 100: ",n);
scanf("%f", &grade[n]);
}
printf("\nStudent\t\tGrade\n");
for(n=1; n<=5; n++){
printf("%d\t\t%.1f\n\n",n ,grade[n]);
}
printf("--------------------\n");
float avg = (grade[0] + grade[1] + grade[2] + grade[3] + grade[4])/5;
printf("Average Grade:\t%.1f", avg);
}
'float grade [5];에 대한 배열 첨자는 0에서 4까지이며 1에서 5가 아닙니다. 따라서 정의되지 않은 동작으로 이어지는 스캔 및 인쇄 작업시 배열의 범위를 벗어납니다. 당신의 평균은 unintialized 변수를 사용합니다 ('grade [0]'). 당신은'scanf()'의 반환 값을 검사하여 매번 실제 데이터를 얻을 수 있도록해야한다. –