Ok I think I got it. Talking to myself is doing wonders for some reason
Code:
#include <stdio.h>
#include <malloc.h>
#define CLASS 2
#define STUDENT 2
#define GRADE 2
float average(float ***grade);//functionprototypes
void allClassAverage(float **grade);
void classAverage(float *grade);
int main()
{
int i, j, k;//variable declaration
float averageGrade=0;
float grade[CLASS][STUDENT][GRADE];
//subject student grade
float*** array;
array=malloc(sizeof(float**)*CLASS);
for (i = 0 ; i < CLASS; i++) {
array[i] = malloc(sizeof(float *) * STUDENT);
for (j = 0; j < STUDENT; j++) {
array[i][j] = (float *)malloc(sizeof(int) * GRADE);
for (k = 0; k < GRADE; k++)
array[i][j][k] = i * j * k;
}
}
for(i=0;i<CLASS;i++){
for(j=0;j<STUDENT;j++){
for(k=0;k<GRADE;k++){
printf("Enter in grade %d for class %d student %d:\n",k+1, i+1,j+1);//user input for grades
scanf("%f", &array[i][j][k]);;
}
}
}
averageGrade=average(array); //function call for average grade and prints it out
printf("%.2f, average for all grades\n", averageGrade);
for(i=0;i<CLASS;i++){
for(j=0;j<STUDENT;j++){//for loops to pass function for subject average
classAverage(array[i][j]);
}
}
for(i=0;i<CLASS;i++){//for loop for subject average
allClassAverage(array[i]);
}
}
float average(float ***grade)//function definition
{
int i, j, k;
float gradeAve=0;//var declaration
for(i=0;i<CLASS;i++){//for loops to calculate average grade
for(j=0;j<STUDENT;j++){
for(k=0;k<GRADE;k++){
gradeAve+=grade[i][j][k];
}
}
}
return gradeAve/8;//return the gradeave value/220 inputs
}
void classAverage(float *grade)//function def
{
float avesub=0;
int k;// var dec
for(k=0;k<GRADE;k++){//for loop to calculate class average
avesub+=grade[k];
}
// printf("%.2f, average class\n", avesub);//print class ave
}
void allClassAverage(float **grade)//func def
{
int j, k;
float donkeypunch=0;
static int i=1;//var dec
for(j=0;j<STUDENT;j++){//nested for to determine both class ave
for(k=0;k<GRADE;k++){
printf("%f grade jk \n", grade[j][k]);
donkeypunch+=grade[j][k];
}
}
// printf("%.2f, subject average for student %d\n", (donkeypunch/4), i++);//print sub aves
}