Need help finding the average of grades.

I have 3 students in a row and 5 grades for every student in a column.I needed the class average which i already found but i still need to find the average for individual student. I don't know how to begin and need help with that.

Following is my code so far

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include <iostream>
#include <iomanip>
using namespace std;

const int R=3; //number of rows
const int C=5; //number of coloumn
const int N=15;

void showNamesAndScores(int scores[][C], char names[][N], int);

double calcAvg(int X[][C], int);

char classAvg(int X[][C], int);


double calcAvg(int X[][C], int s)
{
	double a;

	double sum = 0;
	for(int i=0; i<R; i++)
	{
		for(int j=0; j<C; j++)
		{
			sum += X[i][j];
		}
	}

	a = sum/(R*C);

	return a;

}

char classAvg(int scores[][C], int R)
{
	double avg;

	int sum = 0;
	char grade;
	for(int i=0; i<R; i++)
	{
		sum += scores[i][C];

	}
	avg = sum/R;



}




int main()
{





	//declare 2d array
	int scores[R][C];
	char names[R][N];

{



	//populate 2d array
	for(int i=0; i<R ;i++)
	{
		cout<<"Enter Name of student"<<i+1<<": ";
		cin>>names[i];
		cout<<endl;
	}
	for(int i=0; i<R; i++)
	{
		cout<<"Enter "<<C<<" scores for student "<<i+1<<": ";
		for (int j=0; j<C; j++)
		{
			cin>>scores[i][j];
		}
		cout<<endl;

	}





	showNamesAndScores(scores, names, R);

	//endcalcAvg

	double avg = calcAvg(scores, R);

	cout<<"Class Avg: "<<avg<<endl;





}


}


	//end of main


void showNamesAndScores(int scores[][C], char names[][N], int R)
{
	for(int i=0; i<R; i++)
	{
		cout<<names[i];
		cout<<setw(15);
		for(int j=0; j<C; j++)
		{
			cout<<scores[i][j]<<" ";

		}
		cout<<endl;


	}

}//end names and scores






You ging in the right direction...
But i would make a single function to use for both averages:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
double calcAvg( int * arr , int size )
{
  long sum =0;
  for(int i =0;i<size;i++)
  {
    sum += arr[i];
  }
  return (sum / size);
}

double classAvg( int **arr , int rows, int columns )
{
  long sum = 0;
  for ( int i=0; i<rows;i++)
  {
     sum += calcAvg( arr[i] , columns );
  }
  return (sum / rows);
}


It is not tested...so if in doesn't work i am glad to help....
Last edited on
Its not really working..
what does not work? I do not have a pc nearby.. I am using a tablet..
Last edited on
Topic archived. No new replies allowed.