Даны вещественные числа A1, A2, A3, ... . Признак конца

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

Ответить
Nit
Сообщения: 3
Зарегистрирован: 27 май 2014, 18:03

Здравствуйте.Помогите Пожалуйста с программой на С++

Как сделать так чтобы Если вводить сразу признак конца последовательности (999), то программа продолжает ждать ввода, а должна завершаться.
И правильно будет если я Int поменяю на float,чтобы числа были вещественными?

Задача:Даны вещественные числа
A1, A2, A3, ... . Признак конца
последовательности число 999. Определить:разность между наибольшим числом и наименьшим числом
последовательности

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

#include <iostream>

int main()
{
int currentElement;
std::cout « "Input elements: " « std::endl;
std::cin » currentElement;

int minimal(currentElement), maximal(minimal);
while (true) {
std::cin » currentElement;
if (currentElement == 999) {
break;
}
else {
minimal = minimal > currentElement ? currentElement : minimal;
maximal = maximal < currentElement ? currentElement : maximal;
}
}
std::cout « "max - min: " « (maximal - minimal) « std::endl;

std::system("pause");
return 0;
}
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

1. Если введено 999, то программа действительно выходи из цикла, но после него ждёт на паузе (system("pause").

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

Ну а как сделать так что бы все правильно было ?
можете написать программу в правильном виде пожалуйста?
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

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

А если так написать программу?
нормально будет?Правильно?

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

#include<iostream.h>
int main()
{

float a,min,max;
cin >> a;
min=a;
max=a;
while(a!=999)
	{
	 if(a<min) min=a;
	 if(a>max) max=a;
	 cin >> a;
	}
cout << (max-min);
return 0;
}
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Код правильний и работоспособный. Это легко проверить, несколько раз запустив программу и введя тестовые значения. Если уж на то пошло, то для этого даже не нужно было создавать тему на форуме.

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