Can someone help me debug my code please?: #include <iostream> #include <string>
ID: 3733998 • Letter: C
Question
Can someone help me debug my code please?:
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <cmath>
using namespace std;
const int ROWS = 2;
const int COLS = 3;
double ave = 0;
//Calculate the sums for rows and columns
z1=calculateSumRow1(empData); //z1
z2=calcalculateSumRow2(empData);//z2
//compute z=z1+z2
z=z1+z2
//Compute p1,p2
p1=z1/z;
p2=z2/z;
int df=0;
ifstream infile;
double expar[ROWS][COLS] ={0,0,0,0,0,0};
double b=0.0;
double cv=0;
void getData1(ifstream& inf, double empl[][COLS]); //insert data
void printEmpData(double empl[][COLS]);
double calculateSumRow1(double empl[][COLS]); //for z1
double calculateSumRow2(double empl[][COLS]); //for z2
int main()
{ cout<<"contigency18.cpp"<<" ";
//string names[ROWS];
double empData[ROWS][COLS];
double empl[ROWS][COLS];
infile.open("datacor3.txt");
if (!infile)
{
cout << "Cannot open input file. The program terminates." << endl;
return 1;
}
cout << fixed << showpoint << setprecision(2);
getData1(infile,empData);
calculateSumRow1(empl);
calculateSumRow2(empl);
}
//FUNCTION: to get the array from file
void getData1(ifstream& inf, double empl[][COLS])
{
cout<<"ROWS="<<ROWS<<"COLS="<<COLS<<" ";
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
inf >> empl[i][j];
cout<<"inf2="<<"empl["<<i<<"]["<<j<<"]="<<empl[i][j];
cout<<" ";
}
}
}
double calculateSumRow1(double empl[][COLS])//z1
{
double sum=0.0;
for(int j=0;j<3;j++){
sum=sum+empl[0][j];
}
return sum;
}
double calculateSumRow2(double empl[][COLS])//z2
{
double sum=0.0;
for(int j=0;j<3;j++){
sum=sum+emp1[1][j];
}
return sum;
}
double calculateSumCol1(double empl[][COLS])//z3
{
double sum = 0.0;
for(int i = 0; i<COLS;i++)
{
sum = sum+empl[i][0];
}
return 0;
}
double calculateSumCol2(double empl[][COLS])//z4
{
double sum = 0.0;
for(int i = 0; i<COLS;i++)
{
sum = sum+empl[i][0];
}
return 0;
}
double calculateSumCol3(double empl[][COLS])//z5
{
double sum = 0.0;
for(int i = 0; i<COLS;i++)
{
sum = sum+empl[i][0];
}
return 0;
}
double expe1(double p1, double expar[ROWS][COLS], int z3, int z4, int z5)
{
for(int i=0;i<ROWS;i++)
{
for(int j=0;j<COLS;j++)
{
if(i==0; j==0)
{
expar[i][j] = p1*23;
}
if(i==0 && j==1)
{
//something
}
if(i==0 && j==2)
{
//something
}
}
}
//print expar
}
double expe2(double p2, double expar[ROWS][COLS], int z3, int z4, int z5)
{
for(int i=0;i<ROWS;i++)
{
for(int j=0;j<COLS;j++)
{
if(i==1 && j==0)
{
expar[i][j] = p2*25;
}
if(i==1 && j=1)
{
//something
}
if(i==1 && j==2)
{
//something
}
}
}
//print expar
}
Explanation / Answer
Debugged code: I have marked the errors in 'bold'.
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <cmath>
using namespace std;
const int ROWS = 2;
const int COLS = 3;
double ave = 0;
//Calculate the sums for rows and columns
//z1=calculateSumRow1(empData); // Function can not be called before definition & z1 is not defined in this scope
//z2=calculateSumRow2(empData); // Function can not be called before definition & z2 is not defined in this scope
//compute z=z1+z2
//z=z1+z2 // z,z1,z2 are not initialized
//Compute p1,p2
//p1=z1/z; // z,z1,p1 are not initialized
//p2=z2/z; // z,z1,p2 are not initialized
int df=0;
ifstream infile;
double expar[ROWS][COLS] ={0,0,0,0,0,0};
double b=0.0;
double cv=0;
void getData1(ifstream& inf, double empl[][COLS]); //insert data
void printEmpData(double empl[][COLS]);
double calculateSumRow1(double empl[][COLS]); // for z1
double calculateSumRow2(double empl[][COLS]); // for z2
int main()
{ cout<<"contigency18.cpp"<<" ";
//string names[ROWS];
double empData[ROWS][COLS];
double empl[ROWS][COLS];
infile.open("datacor3.txt");
if (!infile)
{
cout << "Cannot open input file. The program terminates." << endl;
return 1;
}
cout << fixed << showpoint << setprecision(2);
getData1(infile,empData);
// calculateSumRow1(empl); Function will return value of Double Type
double z1=calculateSumRow1(empl);
// calculateSumRow2(empl); Function will return value of Double Type
double z2=calculateSumRow2(empl);
//compute z=z1+z2
double z=z1+z2; // Value of 'z' can be evaluated when we have z1 and z2
//Compute p1,p2
double p1=z1/z; // Value of 'p1' can be evaluated when we have z1 and z
double p2=z2/z; // Value of 'p2' can be evaluated when we have z1 and z
}
//FUNCTION: to get the array from file
void getData1(ifstream& inf, double empl[][COLS])
{
cout<<"ROWS="<<ROWS<<"COLS="<<COLS<<" ";
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
inf >> empl[i][j];
cout<<"inf2="<<"empl["<<i<<"]["<<j<<"]="<<empl[i][j];
cout<<" ";
}
}
}
double calculateSumRow1(double empl[][COLS])//z1
{
double sum=0.0;
for(int j=0;j<3;j++){
sum=sum+empl[0][j];
}
return sum;
}
double calculateSumRow2(double empl[][COLS])//z2
{
double sum=0.0;
for(int j=0;j<3;j++){
//sum=sum+emp1[1][j];
sum=sum+empl[1][j];
}
return sum;
}
double calculateSumCol1(double empl[][COLS])//z3
{
double sum = 0.0;
for(int i = 0; i<COLS;i++)
{
sum = sum+empl[i][0];
}
return 0;
}
double calculateSumCol2(double empl[][COLS])//z4
{
double sum = 0.0;
for(int i = 0; i<COLS;i++)
{
sum = sum+empl[i][0];
}
return 0;
}
double calculateSumCol3(double empl[][COLS])//z5
{
double sum = 0.0;
for(int i = 0; i<COLS;i++)
{
sum = sum+empl[i][0];
}
return 0;
}
double expe1(double p1, double expar[ROWS][COLS], int z3, int z4, int z5)
{
for(int i=0;i<ROWS;i++)
{
for(int j=0;j<COLS;j++)
{
//if(i==0; j==0)
if(i==0,j==0) //We can not use ';' in if
{
expar[i][j] = p1*23;
}
if(i==0 && j==1)
{
//something
}
if(i==0 && j==2)
{
//something
}
}
}
//print expar
}
double expe2(double p2, double expar[ROWS][COLS], int z3, int z4, int z5)
{
for(int i=0;i<ROWS;i++)
{
for(int j=0;j<COLS;j++)
{
if(i==1 && j==0)
{
expar[i][j] = p2*25;
}
//if(i==1 && j=1)
if(i==1 && j==1) // We need to use '==' for getting TRUE/FALSE result
{
//something
}
if(i==1 && j==2)
{
//something
}
}
}
//print expar
}
PS: I have tested this program in GCC. Give it a Thumbs Up. Thanks
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.