#include <stdio.h>
#include <stdlib.h>
#include <string.h>

double calcAverage(int grades[], int numGrades);

void getGrades(char fName[], int grades[], int *numGrades);

int main(int argc, char *argv[]) {
   int const MAX_GRADES = 100;
   int grades[MAX_GRADES];
   int numGrades = 0;

   int const PASSING_SCORE = 70;

   getGrades(argv[1], grades, &numGrades);

   printf("numgrades is %d\n", numGrades);

   for (int i = 0; i < numGrades; i++) {
      printf("%d - %d  ", i, grades[i]);
 
      //this is what is going on here
      if (grades[i] >= PASSING_SCORE)
         printf("passing!\n");
      else
         printf("failing :-(\n");
   }

   double average = calcAverage(grades, numGrades);

   printf("The average is %f\n", average);

   printf("Hello, World! again...\n");

   return 0;
}


void getGrades(char fName[], int grades[], int *numGrades) {
   
   FILE *fptr;
   fptr = fopen(fName, "r"); //r is for read

   if (fptr == NULL) {
      printf("you screwed up!\n");
      exit(-1);
   }
   else {
      printf("success!\n");
   }

   char buf[BUFSIZ];
   
   while (fgets(buf, sizeof(buf),fptr)) {

char *s = (char *) malloc(strlen(buf));
strcpy(s,buf);
printf("hey! %s", s);

      int grade;
      grade = atoi(buf);
printf("grades... %d numgrades...%d\n", grade, *numGrades);

      grades[*numGrades] = grade;
      (*numGrades)++;
   }
}



double calcAverage(int grades[], int numGrades)
{
   int total = 0;
   for (int i = 0; i < numGrades; i++)
      total = total + grades[i];
printf("the total is %d\n", total);   

   double average = total / (double)numGrades;

   return average;
}