int minimum (int scores[4] [3]){ int min, i,j;min = scores[0][0];for ( i = 0; i<4; ++i )for (j=0; j<3; ++j)if ( scores[i][j] < min )min= scores[i][j];return min;}//function for Maximum Valueint maximum (int values[4][3]){int max, i,j;max = values[0][0];for ( i = 0; i<4; ++i ) for (j=0; j<3; ++j)if ( values[i][j] > max )max= values[i][j];return max;}//function for Averagefloat average (int values[4][3]){float sum=0.0;int count=0;float Average;int i,j;for(i=0;i<4;++i) for(j=0;j<3;++j){sum=sum+values[i][j];++count;}Average=sum/count;return Average;}//function to find student averagefloat studentavg (int values[4][3])float finalmark;finalmark=values[0][0];{for ( j=0;i<3;++j){ for( i=0;i<4;++i){ int rowsum=rowsum+values[i][j];finalmark=rowsum/3;printf("Student's final mark is %.2f\n", finalmark);}}//Main Programint main (void){ int values[4][3], i,j,min,max,sum=0,count=0; float Average,finalmark; int rowsum=0;int minimum (int values[4][3]);int maximum (int values[4][3]);float average (int values[4][3]);float studentavg (int values[4][3]);printf ("Enter Values: \n"); for ( i = 0; i< 4; i++ ) { for ( j = 0; j< 3; j++ ) { printf(" values[%i][%i] = ", i,j, values[i][j] ); scanf("%i", &values[i][j]); } } printf("\n"); printf("\n"); printf("\n"); min = minimum(values);max = maximum(values);Average = average(values);finalmark=studentavg(values);printf(" The minimum value is %i\n", min);printf(" The maximum value is %i\n", max);printf (" The Class final mark is %.2f\n", Average);return 0;} }}
int rowsum=rowsum+values[i][j]; is dangerous. bcz in each iteration of inner for loop, new variable is generating.
You need the declaration of
rowsum out side the inner for loop and initialize it to 0.
int rowsum=rowsum+values[i][j]
You need the declaration of
rowsum out side the inner for loop and initialize it to 0.