Как отображать все необходимые числа после ввода - C++
Здравстуйте. Недавно прошло ВПР по информатике и у меня возникла проблема - числа при условии должны были отображаться(если кратно 3 и остаток 4) после ввода всех необходимых чисел, но у меня получилось так - я вводил число и оно у меня отображалось сразу(если было верно). Как решить проблему Вот код
#include <iostream>
using namespace std;
int chislo = { 0 };
int minChislo = { 0 };
int maxChislo = { 1000 };
int scolkoChislo = { 1 };
int colichestwoIspolzovanyh = { 0 };
int colichestvopravilnyh = { 0 };
int main()
{
setlocale(LC_ALL, "Russian");
cout << "Укажите количество чисел(по умолчанию 1)";
cin >> scolkoChislo;
if (scolkoChislo > maxChislo)
{
cout << "Числа не должны превышать 1000 шт. Перезапустите программу";
}
else
{
while (colichestwoIspolzovanyh < scolkoChislo)
{
cout << "Введите число" << endl;
cin >> chislo;
if (chislo % 3 == 0)
{
if (chislo % 10 == 4)
{
cout << chislo <<" - Верно"<<endl;
colichestvopravilnyh++;
}
}
colichestwoIspolzovanyh++;
}
}
return 0;
}
Ответы (1 шт):
Автор решения: AR Hovsepyan
→ Ссылка
Чтобы выводить на консоль позже, нужно хранить данные где то. Можно хранить в массиве, в очереди, в каком то контейнере или в буфере другого потока, например в строковом:
#include <iostream>
#include <sstream>
int main()
{
//нужно все делать так, как требует задание
int x{}, count{}, size{}, m;
std::cin >> m;
const int
max{ 30000 },
maxsize{ 1000 };
if (m <= max) {
std::stringstream stream;
while (m-- && std::cin >> x && count <= maxsize) {
if (x % 10 == 4 && x % 3 == 0) {
stream << x << ' ';
//пробел для разделения чисел
++count;
}
}
std::cout << '\n' << "количество таких чисел:\n"
<< count << "\nсами числа:\n";
while (stream >> x) {
std::cout << x << ", ";
}
} else
std::cerr << "вы задали некорректное количество чисел ";
return 0;
}