I closed out the other post I had "fill 2d array". The assignment is to read in a file to a 2d array that has the month #, high temp, low temp for each month. Then calculate the aver high and aver low and give the highest and lowest temps.
A fellow student helped me get on the right track for the problem of fillng the array.
I am breaking the pgm into pieces. I am trying to get the function working that finds the aver high. I am getting some errors that have me stumped. Any help would be appreciated.

>Chptr9_exer4.obj : error LNK2019: unresolved external symbol "double __cdecl AverHigh(double (* const),int,double)" (?AverHigh@@YANQAY02NHN@Z) referenced in function _main
1>C:\Documents and Settings\User\Desktop\C++ Programming\Chapter 9\Chptr9_exer9\Debug\Chptr9_exer9.exe : fatal error LNK1120: 1 unresolved externals

Here is my code

``````#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;
const int NUMBER_OF_ROWS = 12;
const int NUMBER_OF_COLUMNS = 3;

void GetData(ifstream& in, double m_t[][NUMBER_OF_COLUMNS], int NUMBER_OF_ROWS);
double AverHigh(double m_t[][NUMBER_OF_COLUMNS],int NUMBER_OF_ROWS, double aver_h);
int main()
{
double m_t;
double aver_h = 0;
//	double aver_l;
//	int high;
//	int low;
ifstream in;
//	ofstream out;

in.open("testdata.txt");
if (!in)
{
cout << "Cannot open input file." << endl;
return 1;
}
//	out.open("outdata");

while (in)
{
int row;
int col;
in >> row >> col;    // I'm trying to do a priming read

GetData(in, m_t, NUMBER_OF_ROWS);
AverHigh(m_t, NUMBER_OF_ROWS, aver_h);
void GetData(ifstream& in, double m_t[][NUMBER_OF_COLUMNS], int numberOfRows)
{
int row;
int col;

for (row=0; row < numberOfRows; row++)
for (col=0; col < NUMBER_OF_COLUMNS; col++)
in >> m_t[row][col];

system("pause");
}
double averHigh(double m_t[][NUMBER_OF_COLUMNS],int NUMBER_OF_ROWS, double aver_h)
{
int c;
int r;
//   double aver_h;
for (c = 1; c < NUMBER_OF_COLUMNS; c++)
{
double aver_h = 0;
double sum = 0;
for (r = 0; r < NUMBER_OF_ROWS; r++)
sum = sum + m_t[r][c];
aver_h = sum / NUMBER_OF_ROWS;
}
return aver_h;

}``````

Format your code better and the problem will smack you in the face...

## All 3 Replies

Format your code better and the problem will smack you in the face...