Другие языки программирования и технологии

программирование с++. циклы

нужно написать такую же программу только когда число вводимых числе неизвестно окончание ввода ввод нуля. в числовую переменную последовательность вводятся целые положительные числа произвольной разрядности. требуется вывести на экран те числа суммма цифр которых четна
// Алексей_Морозов_2011-12-27
#include <iostream>
#include <string>
#include <vector>
#include <iterator>
using namespace std;

int main()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
vector<string> v;
string str;
char * temp;
int size, summa, d, count;
bool flag = false;
cout << endl << " Вводите, пожалуйста, целые положительные числа: " << endl << endl;
while (getline(cin, str))
{
if (str == "0") break;
else
{
summa = 0;
count = 0;
size = str.length() + 1;
temp = new char [size];
strcpy (temp, str.c_str());
for (int n = 0; n < size; n++)
{
char c = temp[n];
if (temp[n] >= 48 && temp[n] <= 57 || temp[n] == 0) continue;
else count++;
}
if (count == 0)
{
d = atoi((const char *)&temp[0]);
do
{
summa += d % 10;
d /= 10;
}
while (d > 0);
}
else
{
cout << endl << " Не корректные данные! \a" << endl << endl;
continue;
}
if (summa % 2 == 0)
{
v.push_back(str);
flag = true;
}
}
}
delete temp;
if (flag) cout << endl << " Удовлетворяют заданию: " << endl;
else cout << endl << " Чётных чисел нет! \a" << endl;
copy(v.begin(), v.end(), ostream_iterator<string>(cout, "\n"));
cin.get();
return 0;
}
Ivan Ivanov
Ivan Ivanov
52 339
Лучший ответ

Похожие вопросы