Array with unknown #Loops

I am having trouble changing my program if I don't know how many scores I have what do I change the MAXSIZE value to I'm not sure if I should just imput a number that is really high or if there is another way maybe to use a while loop but instead of a for loop?? I'm not quite sure how to go about it???

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
#include <string>
#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;

//Global Identifiers
const int MAX_SIZE=2;

//Function Prototypes
void GetArray(int testscoresf[], int &countf);
void ComputeAverage(int testscoresf[], float &averagef, int countf);
void PrintReport(int testscoresf[], float averagef, int countf);


//Main Program
void main()
{
	int testscores[MAX_SIZE], count=0;
	float average;
	bool Done=false;

	GetArray(testscores, count);
	ComputeAverage(testscores, average, count);
	PrintReport(testscores, average, count);
	return;
}

//Function Definitions
void GetArray(int testscoresf[], int &countf)
{
	countf=0;

	{
		cout<<"Please enter score for test #"<<countf+1<<":\t";
		cin>>testscoresf[countf];
		countf++;
	For(int i=0;i<=MAX_SIZE; i++)
	return;
}

void ComputeAverage(int testscoresf[], float &averagef, int countf)
{
	int sum=0;
	for (int i=0; i<countf; i++)
	{
		sum=sum+testscoresf[i];
		averagef=float (sum)/countf;
	}
	return;
}

void PrintReport(int testscoresf[], float averagef, int countf)
{
	cout<<"CLASS REPORT:\n";
	cout<<setw(14)<<"TEST #"<<setw(14)<<"TEST SCORE:\n";
	for  (int j=0; j<countf; j++)
	{
		cout<<setw(14)<<j+1<<setw(14)<<testscoresf[j]<<endl;
	}
	cout<<fixed<<showpoint<<setprecision(2);
	cout<<"AVERAGE SCORE: "<<averagef<<endl;
	cout<<endl;
	return;
}
Last edited on
Have you learned about vector yet? http://www.cplusplus.com/reference/stl/vector/
No I just checked your link out and we havent gotten to vectors yet that would certainly work but we havent used them yet.
Can you ask for the number of test results first, then create the array dynamically using "new"?
I thought about that but I think the idea is to have no idea how many test scores you are going to have to enter so that essentially it will never end?? So I wouldn't be able to ask for how many because the user will not know???
You can create a container, such as a linked list, that can grow dynamically. Or you can use the method that vector uses under the covers. When vector runs out of space to store more data it creates another array twice its current size, copies the data from the old array into the new one, then deletes the original array.
Topic archived. No new replies allowed.