#include #include #include void getGrades(char fName[], int grades[], int *numGrades); double calcAverage(int grades[], int numGrades); int main () { const int MAX_STUDENTS = 100; const int PASS_LEVEL = 70; int grades[MAX_STUDENTS]; int numGrades = 0; getGrades("grades.txt", grades, &numGrades); printf("the number of grades is %d\n", numGrades); for (int i = 0; i < numGrades; i++) { printf("%d - %d\n", i, grades[i]); if (grades[i] >= PASS_LEVEL) { printf("Passing!!\n"); } else { printf("you're a loser\n"); printf("and you smell bad\n"); } } double average = calcAverage(grades, numGrades); printf("the average is %f\n", average); return 0; } void getGrades(char fName[], int grades[], int *numGrades) { FILE *fptr; fptr = fopen("grades.txt", "r"); if (fptr == NULL) { printf("you screwed up!\n"); exit(-42); } else { printf("yeah!!\n"); int grade; char buf[BUFSIZ]; while(fgets(buf, sizeof(buf), fptr)) { //not part of the averager logic printf("%s", buf); char *s = (char *) malloc(strlen(buf)); strcpy(s, buf); printf("hey! %s", s); grade = atoi(buf); grades[*numGrades] = grade; (*numGrades)++; } } } double calcAverage(int grades[], int numGrades) { int total = 0; for (int i = 0; i < numGrades; i++) total = total + grades[i]; return total / (double) numGrades; }