This code does not work. Please explain this. Just started to learn the language
Throws this message: "NMAKE : fatal error U1077: "C:\Program Files\JetBrains\CLion 2019.2.2\bin\cmake\win\bin\cmake.exe" : returned code "0xffffffff"
Stop."
#include<iostream>
#include<vector>
using namespace std;
using std::vector;
using std::cout;
using std::endl;
using std::allocator;
class FindAmountOutRange {
int main() {
findAmountOutRange(10, 2, 5);
return 0;
}
static void findAmountOutRange(int amountNumbers, int firstIndexOfRange, int lastIndexOfRange) {
int sum = 0;
vector<int> numbers(amountNumbers);
for (int number : numbers) {
if (number < numbers.size()) {
numbers.push_back(rand() % 100);
}
}
for (int number : numbers) {
cout << number << endl;
}
auto begin = numbers.cbegin();
auto end = numbers.cend();
numbers.erase(begin + firstIndexOfRange, end - lastIndexOfRange);
for (int number : numbers) {
cout << number << endl;
}
for (int number : numbers) {
sum += numbers.at(number);
}
cout << sum << endl;
}
};
Your program is missing its entry point. The main function has to be present outside of a class like in C:
#include<iostream>
#include<vector>
using namespace std;
using std::vector;
using std::cout;
using std::endl;
using std::allocator;
class FindAmountOutRange {
public:
static void findAmountOutRange(int amountNumbers, int firstIndexOfRange, int lastIndexOfRange) {
int sum = 0;
vector<int> numbers(amountNumbers);
for (int number : numbers) {
if (number < numbers.size()) {
numbers.push_back(rand() % 100);
}
}
for (int number : numbers) {
cout << number << endl;
}
auto begin = numbers.cbegin();
auto end = numbers.cend();
numbers.erase(begin + firstIndexOfRange, end - lastIndexOfRange);
for (int number : numbers) {
cout << number << endl;
}
for (int number : numbers) {
sum += numbers.at(number);
}
cout << sum << endl;
}
};
int main() {
FindAmountOutRange::findAmountOutRange(10, 2, 5);
return 0;
}
Please also note the public:
keyword in a class which makes your function findAmountOutRange
accessible from the outside (although you can argue about it residing in a class anyways as its just a static method).
In C++ you do not have to use classes. You can also just define functions like in C, so in your case, the function findAmountOutRange
is unneccessarly put inside a class.
User contributions licensed under CC BY-SA 3.0