Okay I am a relatively new programming student, and brand new to C. I have an assignment to calculate a GPA for an unknown number of students taking an unknown number of classes. I eventually came up with the code below, but while I can easily pull the student number and the students name from the struct, the grades output always comes up as 0. I cannot, for the life of me, figure out why. Can anyone shed some light on this for a dummy like me? lol I would really appreciate any advice you can offer.
Code:
#include <stdio.h>
struct student{
char name[50];
int student_number;
float grades;
};
int main(){
int number_of_students;
int number_of_courses_taken;
float remember_grade=0;
int display_grades_counter=0;
printf("How many students would you like to enter?");
scanf("%d", &number_of_students);
struct student s[number_of_students];
printf("Enter information of students:\n");
for(int entry_counter=1;entry_counter!=number_of_students;entry_counter++)
{
s[entry_counter].student_number=entry_counter+1;
printf("\nFor Student number %d\n",s[entry_counter].student_number);
printf("Enter name: ");
scanf("%s",s[entry_counter].name);
printf("How many courses did this student take?");
scanf("%d", &number_of_courses_taken);
remember_grade=0;
for(int grade_counter=0; grade_counter<number_of_courses_taken;grade_counter++)
{
printf("Enter grade: ");
scanf("%d", &s[entry_counter].grades);
printf("%d", s[entry_counter].grades);
remember_grade=remember_grade+s[entry_counter].grades;
if(grade_counter==number_of_courses_taken-1)
{
//
printf("%d", remember_grade);
printf("%d", s[entry_counter].grades);
s[entry_counter].grades=remember_grade/number_of_courses_taken;
}
else
printf("Please Continue!\n");
}
}
printf("Displaying information of students:\n\n");
for (int display_grades_counter=0; display_grades_counter<number_of_students; display_grades_counter++)
{
printf("Name: ");
printf("%s", s[display_grades_counter].name);
printf("GPA: %d",s[display_grades_counter].grades);
}
return 0;
}