arrays

ok i have started on this new program and i have had to implement pieces of a source code that was given to me into a previous code and i am trying to set this program up so that is has a set of arrays in it but when i go to compile compile is i get several errors that state as the following:

error C2065: 'scores' : undeclared identifier
error C2659: '=' : function as left operand

and i have yet to pinpoint out where the first error should be set for the identifier of "scores" but unfortunately the second one is even more mind boggling because i have yet to come across this error in any of my previous codes that i have written in the past. So if anyone can help bvt and point me bvhe right direction it would be greatly appreciated.

here is my code for you to take a look at
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
   #include <iostream>
#include <fstream> // I/O
#include <iomanip> // For setw()
using namespace std;


ofstream outputfile("output.txt");
const int MAX_FILE_NAME     = 35;  // Maximum file name length
const int MAX_NUMBER_SCORES = 40;  // Maximum number of values in array
void open_input(ifstream& input, char name[]); // Get file name & Open file
void read_values(ifstream& input, double v[], int size, int& used);  // Read values from file
double find_average(ifstream& input, double& average); // Find avg values
void output(const char name[], const double v[], int n, double find_average, ostream& os = cout); // Print results

int main()
// Parameters: None
// Returns: Zero
// Calls: open_input(), find_average(), output()
{ char again; // Does user want to go through loop again?
char file_name[MAX_FILE_NAME + 1]; // Name of file to be processed
ifstream input_numbers; // For working with input file
double average = 0.0;
double avag = 0;
int      num_scores;                   // Number of scores in file

cout << "This program can find the average numbers in a file\n"
<< "of doubles." << MAX_NUMBER_SCORES << " floating-point values.\n" << endl;
system("pause"); // Hold message on screen until key is pressed

do
{
//system("cls"); // Clear screen
open_input(input_numbers, file_name, scores); // Get file name & open file
find_average(input_numbers, scores, num_scores, avag); // Find average values in file
read_values(input_numbers, scores, 
         MAX_NUMBER_SCORES, num_scores);       // Read values
input_numbers.close(); // Close file
if (num_scores > 0)
{ find_average(scores, num_scores, average); // Find average of values in array
output(file_name, scores, num_scores, avag);
output(file_name, scores, num_scores, average, outputfile); // and outputfile
 }
      else
      {  cout << "\n\n\aNo data in file: " << file_name << endl;
      }

cout << "\nDo you want to process another file (Y/N)? ";
cin >> again;
cin.ignore(256, '\n'); // Remove Enter key from keyboard buffer

} while ( again == 'y' || again == 'Y');

cout << "\nEnd of Program!" << endl;


return 0;
} // End of main()

void open_input(ifstream& input, char name[]) //Open file, exit on error
// Parameters: Variables for input file reference and input file name
// Returns: None
// Calls: None
{ int count = 0; // Count number of tries

do // Continue until we get a valid file name and can open file
{
count++;

if (count != 1) // Issue error message if we are trying again.
{ cout << "\n\aInvalid file name or file does not exist. Please try again."
<< endl;
}

cout << "\nEnter the input file name (maximum of " << MAX_FILE_NAME
<< " characters please)\n:> ";
cin.get(name, MAX_FILE_NAME + 1);// Gets at most MAX_FILE_NAME characters
cin.ignore(256, '\n'); // Remove Enter key from keyboard buffer

input.clear(); // Clear all error flags, if any, from prev try
input.open(name, ios_base::in); // Open only if file exists

} while (input.fail() ); // If can't open file, try again
} // End of open_input()

void read_values(ifstream& input, double v[], int size, int& used) // Read values
// Parameters: Variables for file reference, variable for array reference,
//             value for array size and variable for number of values in array
// Returns:    None
// Calls:      None
{  
   double value;        // Value from file
   int count = 0;       // Count number of values in file

   while (count < size && input >> value) // Continue as long as there is 
                                          // room in the array and we can read
   {  v[count] = value;                   // a number from file.
      count ++; 
   }

   used = count;
} // End of read_values()

void find_average(const double v[], int n, double& average) // Find average of values
// Parameters: Variables for array reference, value for number of values 
//             and variables for average of values
// Returns:    None
// Calls:      None
{  
   int i;   // Array index and loop counter
   
   average = find_average = v[0];
   
   for (i = 1; i < n; i++) // Start with 1 since max & min initialized to v[0]
   {  
      if (v[i] > average) average = v[i];
      if (v[i] < average) average = v[i];
   }
} // End of find_average()



double find_average(ifstream& input, double& average) // Find max & min values
// Parameters: Variables for file reference and max and min values
// Returns: None
// Calls: None
{
double avag;

double sum = 0;
int count = 0;

while (input >> avag) // Continue as long as we can read a number from file.
{
sum += avag;
count = count + 1;
}
average = sum/count;
return sum/count;
} // End of average file

void output(const char name[], double average, ostream& os) // Print results
// Parameters: File name, max & min values from file, output stream
// Returns: None
// Calls: None
{ os << "\n\nInput your File Name Please : " << name << endl;
os << "Your average : " << setw(8) << average<< endl;

} 

void output(const char name[], const double v[], int n, 
			double max, double min, ostream& out) 
// Parameters: File name, array reference, number of values and max & min values
// Returns:    None
// Calls:      None
{  int i;  // Array index and loop counter
   out.setf(ios::fixed);
   out.setf(ios::showpoint);
   out.precision(1);
   out << "\n\nInput File Name:         " << name << endl;
   out << "\nFile Contents:" << endl;
   for (i = 0; i < n; )
   {  out << setw(8) << v[i];
      if ( ++i % 5 == 0) out << "\n"; // Print only 5 values per line
   }
   if ( i % 5 != 0) out << "\n";      // Newline if last line is short
   out << "\nLargest  Number in File:        " << setw(8) << max << endl;
   out <<   "Smallest Number in File:        " << setw(8) << min << endl;
} // End of output() 


any suggestions will be taken into consideration
thanks
haste
Last edited on
please put your code in code tags:

ie:

[code]
Your code here
[/code]

Also tell us what lines the errors are occuring on.
Line 33, you use "scores" but you never defined it.

For the other one...I'm not looking for it, give me the line number plz.
my errors are coming on lines 39 and 117 i cant seem to pinpoint these errors right off but have tried a few things that did not help at all. any help will be appreciated
On line 111 you do:
average = find_average = v[0];

find_average is a function, so you can't do this. You are also doing it inside the find_average function...why?
You didn't forward declare the overload void find_average(const double v[], int n, double& average) (body at line 103) but using it at line 39

Also you are calling at line 34 find_average(input_numbers, scores, num_scores, avag); but there aren't overloads which take 4 arguments
Last edited on
any suggestion at how i should fix these problems and what would be the correct way to fix it
Topic archived. No new replies allowed.