"expected primary-expression" error?

Hey guys I am trying to run my program but I get this error.
expected primary-expression before 'table'.
I checked my code over and over but couldn't find what was the issue. Can you guys help? Thanks

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
#include <iostream>
#include <iomanip>
using namespace std;

const int MAXROWS = 10;
const int MAXCOLS = 10;

typedef float PriceType[MAXROWS][MAXCOLS];	// creates a new data type
                                            // of a 2D array of floats

void getPrices(PriceType, int&, int&);	    // gets the prices into the array
void printPrices(PriceType, int, int);      // prints data as a table
float findHighestPrice(PriceType table, int numOfRows, int numOfCols);


int main(){

int rowsUsed;	// holds the number of rows used
int colsUsed;	// holds the number of columns used
PriceType priceTable;	// a 2D array holding the prices
int numOfRows;
int numOfCols;


getPrices(priceTable, rowsUsed, colsUsed);	// calls getPrices to fill the array
printPrices(priceTable, rowsUsed, colsUsed);// calls printPrices to display array
findHighestPrice(PriceType table, numOfRows, numOfCols); // calls findHighestPrice to display

return 0;
}

//*******************************************************************************
//	getPrices
//
//	task:	This procedure asks the user to input the number of rows and
//	columns. It then asks the user to input (rows * columns) number of
//	prices.	The data is placed in the array.
//	data in:	none
//	data out: an array filled with numbers and the number of rows
//	and columns used.
//
//*******************************************************************************


void getPrices(PriceType table, int& numOfRows, int& numOfCols){

cout << "Please input the number of rows from 1 to " << MAXROWS << endl;
cin >> numOfRows;


cout << "Please input the number of columns from 1 to " << MAXCOLS << endl;
cin >> numOfCols;

float usrInput;

   for (int row = 0;  row < numOfRows;  row++){
      for (int col = 0; col < numOfCols;  col++){
		  cout << "Please input the price of an item with 2 decimal places: " << endl;
		  cin >> usrInput;

		  table[row][col] = usrInput;
        // Fill in the code to read and store the next value in the array.
	  }

   }
}


//***************************************************************************
//	printPrices
//
//	task:	This procedure prints the table of prices
//	data in:	an array of floating point numbers and the number of rows
//	and columns used.
//	data out: none
//
//****************************************************************************

void printPrices(PriceType table, int numOfRows, int numOfCols){

cout << fixed << showpoint << setprecision(2);

for(int row = 0; row < numOfRows; row++){
for(int col = 0; col < numOfCols; col++){
// Fill in the code to print the table

    float tmp = table[row][col];
		  cout << "\t" << tmp;
 }
 cout << endl;
}
}

// This function returns the highest price in the array
float findHighestPrice(PriceType table, int numOfRows, int numOfCols){

float highestPrice;
highestPrice = table[0][0];	// make first element the highest price
for (int row = 0; row < numOfRows; row++){
for(int col = 0; col < numOfCols; col++){
if( highestPrice < table[row][col] ){

highestPrice = table[row][col];

 }
}
return highestPrice;
}
}

findHighestPrice(PriceType table, numOfRows, numOfCols);
Explain each token and why is it needed here.



27 If you change it to

findHighestPrice(priceTable, numOfRows, numOfCols); // calls findHighestPrice to display

It compiles and runs

pearlyman: I went ahead and changed it but the issue is it doesn't return the highest value. Plus it makes my program crash at the ending after all the information is entered.
It says, process returned 255?
Any ideas?


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

#include <iostream>
#include <iomanip>
using namespace std;

const int MAXROWS = 10;
const int MAXCOLS = 10;

typedef float PriceType[MAXROWS][MAXCOLS];	// creates a new data type
                                            // of a 2D array of floats

void getPrices(PriceType, int&, int&);	    // gets the prices into the array
void printPrices(PriceType, int, int);      // prints data as a table
float findHighestPrice(PriceType table, int numOfRows, int numOfCols);


int main(){

int rowsUsed;	// holds the number of rows used
int colsUsed;	// holds the number of columns used
PriceType priceTable;	// a 2D array holding the prices
int numOfRows;
int numOfCols;


getPrices(priceTable, rowsUsed, colsUsed);	// calls getPrices to fill the array
printPrices(priceTable, rowsUsed, colsUsed);// calls printPrices to display array
findHighestPrice(priceTable, numOfRows, numOfCols); // calls findHighestPrice to display

return 0;
}

//*******************************************************************************
//	getPrices
//
//	task:	This procedure asks the user to input the number of rows and
//	columns. It then asks the user to input (rows * columns) number of
//	prices.	The data is placed in the array.
//	data in:	none
//	data out: an array filled with numbers and the number of rows
//	and columns used.
//
//*******************************************************************************


void getPrices(PriceType table, int& numOfRows, int& numOfCols){

cout << "Please input the number of rows from 1 to " << MAXROWS << endl;
cin >> numOfRows;


cout << "Please input the number of columns from 1 to " << MAXCOLS << endl;
cin >> numOfCols;

float usrInput;

   for (int row = 0;  row < numOfRows;  row++){
      for (int col = 0; col < numOfCols;  col++){
		  cout << "Please input the price of an item with 2 decimal places: " << endl;
		  cin >> usrInput;

		  table[row][col] = usrInput;
        // Fill in the code to read and store the next value in the array.
	  }

   }
}


//***************************************************************************
//	printPrices
//
//	task:	This procedure prints the table of prices
//	data in:	an array of floating point numbers and the number of rows
//	and columns used.
//	data out: none
//
//****************************************************************************

void printPrices(PriceType table, int numOfRows, int numOfCols){

cout << fixed << showpoint << setprecision(2);

for(int row = 0; row < numOfRows; row++){
for(int col = 0; col < numOfCols; col++){
// Fill in the code to print the table

    float tmp = table[row][col];
		  cout << "\t" << tmp;
 }
 cout << endl;
}
}

// This function returns the highest price in the array
float findHighestPrice(PriceType table, int numOfRows, int numOfCols){

float highestPrice;
highestPrice = table[0][0];	// make first element the highest price
for (int row = 0; row < numOfRows; row++){
for(int col = 0; col < numOfCols; col++){
if( highestPrice < table[row][col] ){

highestPrice = table[row][col];

 }
}
return highestPrice;
}
}


foo.cpp:28:31: warning: variable 'numOfRows' is uninitialized when used here [-Wuninitialized]
        findHighestPrice(priceTable, numOfRows, numOfCols); // calls findHighestPrice to display
                                     ^~~~~~~~~
foo.cpp:28:42: warning: variable 'numOfCols' is uninitialized when used here [-Wuninitialized]
        findHighestPrice(priceTable, numOfRows, numOfCols); // calls findHighestPrice to display
                                                ^~~~~~~~~
foo.cpp:110:1: warning: control may reach end of non-void function [-Wreturn-type]


Topic archived. No new replies allowed.