C/C++

Что не так в этой программе

задача: Напишите программу, которая вводит с клавиатуры числа до тех пор,
пока не будет введено число 0.
Вывести минимальное и максимальное из введенных чисел (не считая 0).
программа
int a;
cin>>a;
if (a>=0)
(a--);
while (a==0)
if (a<=0)
(a++);
while (a==0)
>Что не так в этой программе
Эта программа просто занимается какой-то фигней, вместо того, чтобы делать то, что требуется. Не надейся, что если ты будешь лепить команды как попало, компьютер тебя волшебным образом поймет - это так не работает.
Денис Староверов
Денис Староверов
90 435
Лучший ответ
Валёк Максимов очень помогли
#include <iostream>
int main(){
float x; std::cin>>x; float min=x,max=x;
while(std::cin>>x,x)(x>max?max:x<min?min:x)=x;
std::cout<<"min="<<min<<", max="<<max<<'\n';}
Андрей Кобрин
Андрей Кобрин
87 632
это не программа, а кусок кода, а точнее месиво кода.
ЭС
Эмиль Спирин
80 864
В первой строке объявляется переменная a типа int, затем она заполняется значением, введенным с клавиатуры с помощью функции cin. Далее следует условие if (a>=0), которое не имеет смысла в данном контексте, так как не относится к задаче на ввод чисел до тех пор, пока не будет введено число 0. Затем следует оператор декремента (a--), который также не имеет смысла в данном контексте. Далее следует два цикла while, которые также не выполняют задачу на ввод чисел до тех пор, пока не будет введено число 0. Для решения задачи можно использовать цикл do-while, который позволяет считывать числа с клавиатуры до тех пор, пока не будет введено число 0. Внутри цикла можно находить минимальное и максимальное число, используя соответствующие переменные. Ниже приведен пример кода:
 #include  
using namespace std;

int main() {
int a, min, max;
cin >> a;
min = max = a;
do {
cin >> a;
if (a != 0) {
if (a < min) min = a;
if (a > max) max = a;
}
} while (a != 0);
cout
Валёк Максимов спасибо большое
Михаил Седов Как то смутило количество сравнений в вашем коде, предлагаю рефакторинг:
 
#include
int main() {
int a, min, max;

std::cin >> a;
A:
min = max = a;
while(a!=0) {
min = amax?a:max;
std::cin >> a;
}
cout
Делай циклом
L Л
L Л
1 003
-
Артик Южик
Артик Южик
191