Thank you, I fixed those 2 errors, but I'm still having wrong output.
Here is a program, sorry for not posting it in a begining. I decided to use in this program global veriables, because I am using each function just once, I did not want to pass to them anything and I did not need to return anything.
Code:
#include<stdio.h>
int grades[][18]={0};
int test_sum=0, quiz_sum=0, h_work_sum=0;
int student;
int i, j;
int test_highest=0, quiz_highest=0, h_work_highest=0;
int test_lowest=100, quiz_lowest=100, h_work_lowest=100;
float test_ave[]={0}, quiz_ave[]={0}, h_work_ave[]={0};
float student_ave[]={0};
float ave[]={0};
void get_grade(void)
{
for(i=0;i<student;++i)
{
printf("\t\t\tEnter grades for student# %i\n", i+1);
printf("Test grade\n"); // enter test grades
for(j=0;j<3;++j)
{
scanf("%i",&grades[i][j]);
}
printf("Quiz grade\n"); // enter quiz grades
for(j=3; j<8;++j)
{
scanf("%i",&grades[i][j]);
}
printf("Homework grade\n"); // enter homework grades
for(j=8;j<18;++j)
{
scanf("%i",&grades[i][j]);
}
}
}
void print_grades(void)
{
for(i=0;i<student;++i)
{
printf("\n\t\t\tStudent #%i ",i+1);
printf("\nTest grades:\n");
for(j=0;j<3;++j)
{
printf("%i ",grades[i][j]);
}
printf("\nQuiz grades:\n");
for(j=3; j<8;++j)
{
printf("%i ",grades[i][j]);
}
printf("\nHomework grades:\n");
for(j=8;j<18;++j)
{
printf("%i ",grades[i][j]);
}
printf("\n");
}
}
void find_highest_grade(void)
{
for(i=0;i<student;++i)
{
for(j=0;j<3;++j)
{
if(grades[i][j]>test_highest)
test_highest=grades[i][j];
}
for(j=3;j<8;++j)
{
if(grades[i][j]>quiz_highest)
quiz_highest=grades[i][j];
}
for(j=8;j<18;++j)
{
if(grades[i][j]>h_work_highest)
h_work_highest=grades[i][j];
}
}
}
void find_lowest_grade(void)
{
for(i=0;i<student;++i)
{
for(j=0;j<3;++j)
{
if(grades[i][j]<test_lowest)
test_lowest=grades[i][j];
}
for(j=3;j<8;++j)
{
if(grades[i][j]<quiz_lowest)
quiz_lowest=grades[i][j];
}
for(j=8;j<18;++j)
{
if(grades[i][j]<h_work_lowest)
h_work_lowest=grades[i][j];
}
}
}
void find_student_ave(void)
{
for(i=0;i<student;++i)
{
test_sum=0;
for(j=0;j<3;++j)
{
test_sum+=grades[i][j];
}
test_ave[i]=(float)test_sum/3;
}
for(i=0;i<student;++i)
{
quiz_sum=0;
for(j=3; j<8;++j)
{
quiz_sum+=grades[i][j];
}
quiz_ave[i]=(float)quiz_sum/5;
}
for(i=0;i<student;++i)
{
h_work_sum=0;
for(j=8;j<18;++j)
{
h_work_sum+=grades[i][j];
}
h_work_ave[i]=(float)h_work_sum/10;
}
i=0;
while(i<student)
{
student_ave[i]=((0.5*test_ave[i])+(0.3*quiz_ave[i])+(0.2*h_work_ave[i]));
++i;
}
}
int main(void)
{
printf("Enter number of students in a class: ");
scanf("%i", &student);
get_grade();
print_grades();
find_highest_grade();
find_lowest_grade();
printf("\n\n\t\tTest\tQuiz\tH/work\n");
printf("---------------------------------------\n");
printf("Lowest grade %i\t%i\t %i\n", test_lowest, quiz_lowest, h_work_lowest);
printf("Highest grade %i\t%i\t %i\n",test_highest, quiz_highest, h_work_highest);
printf("\n");
find_student_ave();
printf("\n\nStudent Test Ave. Quiz Ave. H/work Ave. Overall Ave.\n");
printf("------------------------------------------------------\n");
for(i=0; i<student; ++i)
{
printf(" %i\t %.2f\t %.2f\t%.2f\t %.2f\n",i+1,test_ave[i], quiz_ave[i], h_work_ave[i], student_ave[i]);
}
}