У меня есть программа, которая должна считывать значения из пользователя в вектор. Затем моя функция должна поддерживать текущую сумму и начинать с элемента 1 и сравнивать элемент 2 с суммой (этот момент это всего лишь элемент 1). Перейдите к следующему элементу, добавьте элемент 2 в сумму и посмотрите, больше ли элемент 3, чем сумма элементов 1 и 2. Я должен печатать только те элементы, которые больше суммы. У меня возникли проблемы с его получением каких-либо значений. Может кто-нибудь, пожалуйста, дайте мне знать, что я могу делать неправильно? БлагодаряОшибка рекурсивной функции
int main()
{
vector <int> theData;
int i;
cout<< "Enter in the list of integers ending with a -1" << endl;
do
{
cin >> i;
if (i==-1)
{
break;
}
theData.push_back(i);
}while(i!=-1);
int index = 1;
int runningSum = unsortedData[i];
largeValue(unsortedData, index, runningSum);
system("PAUSE");
return 0;
}
void largeValue(vector<int> myVector, int index, int runningSum)
{
int size = myVector.size();
if (index == size)
{
return;
}
if (myVector[index] > runningSum)
{
cout << myVector[index] << " ";
runningSum += myVector[index];
index = index +1;
largeValue(myVector, index, runningSum);
}
else if (myVector[index] < runningSum)
{
runningSum += myVector[index];
index = index + 1;
largeValue(myVector, index, runningSum);
}
}
Пожалуйста, отформатируйте источник в своем вопросе, используя пробелы, а не вкладки, и включите весь источник в форматирование. –
Я думаю, что это не место, где можно задать домашнее задание! –
Вы должны использовать рекурсию? –