Do...while ошибка

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
qix
Сообщения: 1
Зарегистрирован: 20 дек 2017, 17:49

20 дек 2017, 17:50

Всем привет,написал программу по данному условию: Подсчитывать сумму четных чисел, среди целых чисел, вводимых пользователем, пока не будет введен 0.

Вот как я сделал ее,однако если я введу например число 2.5,то оно выдаст сумму равно 2,как написать код так,что бы при вводе дробного числа выдавалась ошибка.

Код: Выделить всё

#include<iostream>
using namespace std;
int main()
{
setlocale(LC_CTYPE, "rus");
int main j = 0, k;
cout << "Введите числа:";
do{
cin >> k;
if (k % 2 == 0) 
{
if (k - (int)k == 0) {
j += k;
}
else(cout << "Число не целое"<<endl);
}
else(cout << "Число не четное"<<endl);
} while (k != 0);
cout << "Сумма четных, целых чисел равна:"<<j<<endl;
}
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

20 дек 2017, 18:42

Читать, как строчку и проводить ручную валидацию. Стандартная библиотека не обеспечивает валидацию, а лишь читает до первого не ошибочного символа.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить