При помощи этого кода числа выводятся в обратном порядке, что изменить в коде, чтобы они выводились в прямом порядке?
#include "stdafx.h"
#include <iostream>
using namespace std;
void foo() {
int n;
cin >> n;
if (n == 0) {
cout << "Числа в обратном прядке:";
cout << "\n";
return;
}
foo();
cout << n << " ";
}
int main() {
setlocale(LC_ALL, "rus");
// Реализация по принципу стека, последний зашел - первый вышел,
//то есть задача которая помещена в стек самой последней выполняется
// самой первой.
cout << "Вводимые числа:" << endl;
foo();
cout << endl;
system ("pause");
}
Например, добавить очередь - вот так: :)
#include <iostream>
#include <iomanip>
#include <queue>
using namespace std;
void foo(queue<int>*s = nullptr)
{
if (s == nullptr) s = new queue<int>;
int n;
cin >> n;
if (n == 0) return;
s->push(n);
foo(s);
cout << s->front() << " ";
s->pop();
if (s->empty()) delete s;
};
int main()
{
foo();
cout << endl;
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей