This is my code. I don't understand why it won't compile and give me the output I want... For a sample input of 7, 8, 9, 10, the output would remove the maximum number (10) and return 7, 8 & 9. But the submitting system says it failed and only returned 1?? Please help!
main.cpp:
#include <iostream>
#include <vector>
#include <limits>
#include "Set.h"
using namespace std;
int main()
{
Set obj;
obj.addElement(1);
obj.addElement(10);
obj.addElement(5);
obj.addElement(3);
obj.addElement(7);
for(int i = 0; i < obj.vector.size(); i++)
{
//cout << obj.vector[i] << endl;
}
obj.removeElement(obj.returnMaximum());
for(int i = 0; i < obj.vector.size(); i++)
{
cout << obj.vector[i] << endl;
}
obj.returnMinimum();
for(int i = 0; i < obj.vector.size(); i++)
{
cout << obj.vector[i] << endl;
}
obj.returnAverage();
for(int i = 0; i < obj.vector.size(); i++)
{
cout << obj.returnAverage() << endl;
}
return 0;
}
Set.h:
#include <iostream>
#include <vector>
#include <limits>
class Set {
public:
Set();
void addElement(int n);
int removeElement(int n);
double returnAverage();
int returnMaximum();
int returnMinimum();
std::vector<int> vector;
};
Set.cpp
#include <iostream>
#include <vector>
#include <limits>
#include "Set.h"
Set::Set()
{
vector = std::vector<int>();
}
void Set::addElement(int n)
{
for(int i = 0; i < vector.size(); i++)
{
if(vector[i] == n)
{
return;
}
}
vector.push_back(n);
}
int Set::removeElement(int n)
{
for(int i = 0; i < vector.size(); i++)
{
if(vector[i] == n)
{
vector.erase(vector.begin()+i);
}
}
return n;
}
double Set::returnAverage()
{
double average;
double sum;
if(vector.size() == 0)
{
return -1;
}
for(int i = 0; i < vector.size(); i++)
{
average = average + vector[i];
sum = average/vector.size();
}
return sum;
}
int Set::returnMaximum()
{
int max = 0;
if(vector.size() == 0)
{
return -1;
}
for(int i = 0; i < vector.size(); i++)
{
if(max < vector[i])
{
max = vector[i];
}
}
return max;
}
int Set::returnMinimum()
{
int min = std::numeric_limits<int>::max();
if(vector.size() == 0)
{
return -1;
}
for(int i = 0; i < vector.size(); i++)
{
if(min > vector[i])
{
min = vector[i];
}
}
return min;
}
These are the errors...
main.cpp: In function ‘int main()’:
main.cpp:17:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < obj.vector.size(); i++)
^
main.cpp:24:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < obj.vector.size(); i++)
^
main.cpp:32:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < obj.vector.size(); i++)
^
main.cpp:39:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < obj.vector.size(); i++)
^
Set.cpp: In member function ‘void Set::addElement(int)’:
Set.cpp:17:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < vector.size(); i++)
^
Set.cpp: In member function ‘int Set::removeElement(int)’:
Set.cpp:32:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < vector.size(); i++)
^
Set.cpp: In member function ‘double Set::returnAverage()’:
Set.cpp:55:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < vector.size(); i++)
^
Set.cpp: In member function ‘int Set::returnMaximum()’:
Set.cpp:75:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < vector.size(); i++)
^
Set.cpp: In member function ‘int Set::returnMinimum()’:
Set.cpp:96:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < vector.size(); i++)
^
Set.cpp: In member function ‘double Set::returnAverage()’:
Set.cpp:48:9: warning: ‘sum’ may be used uninitialized in this function [-Wmaybe-uninitialized]
double sum;
^
Set.cpp:58:32: warning: ‘average’ may be used uninitialized in this function [-Wmaybe-uninitialized]
average = average + vector[i];
^
*** Case 1 ***
Input: 7 9 10 5
Expecting: 7 9 5
Obtained : 1
Wrong
*** Case 2 ***
Input: 1 2 2 3 3
Expecting: 1.5 2 1
Obtained : 1
Wrong
*** Case 3 ***
Input: 1
Expecting: -1 -1 -1
Obtained : 1
Wrong
*** Case 4 ***
Case hidden
Wrong
*** Case 5 ***
Case hidden
Wrong
Result: 0 / 5
Aucun commentaire:
Enregistrer un commentaire