This is the assignment: \"Write a program that uses a two-dimensional array to s
ID: 3535128 • Letter: T
Question
This is the assignment:
"Write a program that uses a two-dimensional array to store the highest and lowest temperatures for each month of the year. The program should output the average high, average low, and the highest and lowest temperatures for the year. Your program must consist of the following functions:
a) Function getData: This function reads and stores data in the two-dimensional array.
b) Function averageHigh: This function calculates and returns the average high temperature for the year.
c) Function averageLow: This function calculates and returns the average low temperature for the year.
d) Function indexHighTemp: This function returns the index of the highest high temperature in the array.
e) Function indexLowTemp: This function returns the index of the lowest low temperature in the array."
My teacher gave us some data and wants us to input it using a file. My question is, how should I write the input file to get each temperature into its correct slot in the array? Also, am I inputting the file correctly? Thanks.
-Puckett
What I have so far.
#include <iostream>
#include <fstream>
using namespace std;
const int months = 12;
void getData(double [][ 2 ], int);
double averageHigh(double [] [ 2 ], int);
double averageLow(double [] [ 2 ], int);
int indexHighTemp(double [] [ 2 ], int);
int indexLowTemp(double [] [ 2 ], int);
int main()
{
double temperatures[months][2];
getData(temperatures, months);
cout << " The average high temp. for the year: "
<< averageHigh(temperatures, months) << endl;
cout << " The average low temp. for the year: "
<< averageLow(temperatures, months) << endl;
cout << " Index of highest temp. for the year: "
<< indexHighTemp(temperatures, months) << endl;
cout << " Index of lowest temp. for the year: "
<< indexLowTemp(temperatures, months) << endl;
system("PAUSE");
return 0;
}
void getData(double t[][2], int m)
{
int i;
ifstream inFile;
ofstream outFile;
inFile.open("tempsFile.txt");
if (!inFile)
{
cout << "Cannot open input file."
<< endl;
}
for (int i=0; i<m; i++)
inFile >> t[i][0];
cout << endl;
inFile >> t[i][1];
cout << endl;
}
double averageHigh(double t[] [2], int m)
{
double sum = 0;
for (int i=0; i<m; i++)
sum += t[i][0];
return (sum/m);
}
double averageLow(double t[][2], int m)
{
double sum = 0;
for (int i=0; i<m; i++)
sum += t[i][1];
return (sum/m);
}
int indexHighTemp(double t[][2], int m)
{
int ind = 0;
double highest = t[0][0];
for (int i=1; i<m; i++)
if (t[i][0] > highest)
{
highest = t[i][0];
ind = i;
}
return ind;
}
int indexLowTemp(double t[][2], int m)
{
int ind = 0;
double lowest = t[0][1];
for (int i=1; i<m; i++)
if (t[i][1] < lowest)
{
lowest = t[i][1];
ind = i;
}
return ind;
}
Explanation / Answer
ANSWER
Answer
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <iomanip>
using namespace std;
void getData(int array [12][2], ifstream& infile);
double averageHigh (int array [12][2]);
double averageLow (int array [12][2]);
int indexHighTemp (int array [12][2], ofstream& outfile);
int indexLowTemp (int array [12][2], ofstream& outfile);
int main()
{
int array [12][2];
int high;
int low;
ifstream infile;
ofstream outfile;
infile.open("E:\program6input.txt");
outfile.open("E:\program6ouput.txt");
outfile << "Daniel" <<endl;
outfile<<endl;
outfile<<fixed<<showpoint<<setprecision(2);
getData(array, infile);
averageHigh(array);
outfile << setw(18) << left << "Average High Temp:" << averageHigh (array)<<endl;
averageLow (array);
outfile << setw(18) << left << "Average Low Temp:"<<averageLow (array)<<endl;
high = indexHighTemp (array, outfile);
low = indexLowTemp (array, outfile);
outfile << setw(18) << left << "Highest Temp:";
outfile << high << endl;
outfile << setw(18) << left << "Lowest Temp:";
outfile << low << endl;
infile.close();
outfile.close();
system("pause");
}
void getData (int array[12][2], ifstream& infile)
{
int x;
int y;
for(x=0; x<12; x++)
{
for(y=0; y<2; y++)
{
infile >> array[x][y];
}
}
}
double averageHigh (int array [12][2])
{
double avg;
double sum;
int x;
int y;
avg = 0;
sum = 0;
for (x = 0; x<12; x++)
{
{
sum = sum + array[x][0];
}
}
avg = sum / x;
return avg;
}
double averageLow (int array[12][2])
{
double avg2;
double sum2;
int x;
int y;
avg2=0;
sum2=0;
for (x=0; x<12; x++)
{
{
sum2 = sum2 + array[x][1];
}
}
avg2 = sum2 /x;
return avg2;
}
int indexHighTemp (int array[12][2], ofstream& outfile)
{
int highest;
int x;
int y;
int xx;
int yy;
highest = array[0][0];
for (x=0; x<12; x++)
{
for (y=0; y<2; y++)
{
if (highest < array[x][y])
{
highest =array[x][y];
xx=x;
yy=y;
}
}
}
outfile << setw(18) << left << "High Temp Index:"<< "[" << xx << ","<< yy<< "]" << endl;
return highest;
}
int indexLowTemp (int array[12][2], ofstream& outfile)
{
int lowest;
int x;
int y;
int xx;
int yy;
lowest = array[0][0];
for (x=0; x<12; x++)
{
for (y=0; y<2; y++)
{
if (lowest > array[x][y])
{
lowest = array[x][y];
xx = x;
yy = y;
}
}
}
outfile << setw(18) << left << "Low Temp Index:" << "[" << xx << "," << yy <<"]" << endl;
return lowest;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.