write a programme that creates a two dimentional array initialised with test data. use 4 rows and 5 columndatatype. the programme should have the following functions:
1.getTotal:-
this function should accept a two dimentional array as its argument and return the total of all the values in the array
2. getAverage
3. getRowTotal
4. getColumnTotal
5. getHighestInRow
6 getLowestInRow
Here is the answer for this program please see in the bottom for help I'm looking for.
# include <iostream>
#define NROW 4
#define NCOL 5
using namespace std;
int getTotal(int[][NCOL]);
int getRowTotal(int[][NCOL],int);
int getColumnTotal(int[][NCOL],int);
double getAverage(int);
int getLowestInRow(int[][NCOL],int);
int getHighestestInRow(int[][NCOL],int);
int main ()
{int i,j,choice;
int num[NROW][NCOL]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20},val;
cout<<"The Matrix\n";
for(i=0;i<NROW;i++)
{for(j=0;j<NCOL;j++)
cout<<num[i][j]<<"\t";
cout<<endl;
}
for(;;)
{cout<<"Choose what you would like to do\n";
cout<<"1 get Total of all values in matrix: \n";
cout<<"2 get Average of all values in matrix:\n";
cout<<"3 get a Row Total\n";
cout<<"4 get a Column Total\n";
cout<<"5 get the Highest value In a Row\n";
cout<<"6 get the Lowest value In a Row\n";
cout<<"7 Exit\n";
scanf("%d",&choice);
switch(choice)
{case 1: cout<<"Total= "<<getTotal(num)<<endl;
break;
case 2: val=getTotal(num);
cout<<"The average is "<<getAverage(val)<<endl;
break;
case 3: cout<<"Enter row : ";
cin>>i;
if(i<0||i>=NROW)
{cout<<"Error-must be between 0 and "<<NROW<<"\n";
break;
}
else
cout<<"Row "<<i<<" total is "<<getRowTotal(num,i)<<endl;
break;
case 4: cout<<"Enter column: ";
cin>>i;
if(i<0||i>=NCOL)
{cout<<"Error-must be between 0 and "<<NCOL<<"\n";
break;
}
else
cout<<"Column "<<i<<" total is "<<getColumnTotal(num,i)<<endl;
break;
case 5: cout<<"Enter row : ";
cin>>i;
if(i<0||i>=NROW)
{cout<<"Error-must be between 0 and "<<NROW<<"\n";
break;
}
else
cout<<"Highest element in row "<<i<<" is "<<getHighestestInRow(num,i)<<endl;
break;
case 6: cout<<"Enter which row : ";
cin>>i;
if(i<0||i>=NROW)
{cout<<"Error-must be between 0 and "<<NROW<<"\n";
break;
}
else
cout<<"Lowest element in row "<<i<<" is "<<getLowestInRow(num,i)<<endl;
break;
case 7: system("pause");
return 0;
default: cout<<"Error!! Try Again\n\n";
}
}
}
int getTotal(int r[][NCOL])
{int i,j;
int val=0;
for(i=0;i<NROW;i++)
for(j=0;j<NCOL;j++)
val+=r[i][j];
return val;
}
int getHighestestInRow(int num[][NCOL],int n)
{int i;
int val=0;
val=num[n][0];
for(i=1;i<NCOL;i++)
if(num[n][i]>val)
val=num[n][i];
return val;
}
double getAverage(int t)
{return (double)t/(NROW*NCOL);
}
int getLowestInRow(int num[][NCOL],int n)
{int i;
int val=0;
val=num[n][0];
for(i=1;i<NCOL;i++)
if(num[n][i]<val)
val=num[n][i];
return val;
}
int getRowTotal(int num[][NCOL],int n)
{int i;
int val=0;
for(i=0;i<NCOL;i++)
val+=num[n][i];
return val;
}
int getColumnTotal(int num[][NCOL],int n)
{int i;
int val=0;
for(i=0;i<NROW;i++)
val+=num[i][n];
return val;
}
Now how could I change the program with the same challenge using a pointer to the data type (*ptr) and the calculated locations.
AND
The same challenge using a pointer to a pointer to the data type(**ptr).
For all of these, PASS any size information needed into the function.