#include #include #include double calcAverage(int grades [], int numGrades); void getData(char *fName, int grades[], int *numGrades); int main (int argc, char *argv[]) { const int MAX_STUDENTS = 50; const int PASS_LEVEL = 70; // int grades[] = {42, 11, 100, 93, 70}; // int numGrades = 5; int grades[MAX_STUDENTS]; int numGrades = 0; getData("grades.txt", grades, &numGrades); printf("the number of students is %d\n", numGrades); for (int i = 0; i < numGrades; i++) { printf("%d - %d ", i, grades[i]); if (grades[i] >= PASS_LEVEL) { printf(", Passing\n"); } else { printf(", Failing\n"); } } double average = calcAverage(grades, numGrades); printf("The average = %f\n", average); return 0; } void getData(char *fName, int grades[], int *numGrades) { FILE *fptr; fptr = fopen(fName, "r"); if (fptr == NULL) { printf("you screwed up\n"); exit(-1); } else { int grade; char buf[BUFSIZ]; while(fgets(buf,sizeof(buf), fptr)) { printf("%s\n", buf); grade = atoi(buf); grades[*numGrades] = grade; (*numGrades)++; } } printf("in getData - numGrades = %d\n", *numGrades); } double calcAverage(int grades[], int numGrades) { double average; int total = 0; for (int i = 0; i < numGrades; i++) { total = total + grades[i]; //the same as total += grades[i]; } average = total / (double) numGrades; return average; }