задача: Напишите программу, которая вводит с клавиатуры числа до тех пор,
пока не будет введено число 0.
Вывести минимальное и максимальное из введенных чисел (не считая 0).
программа
int a;
cin>>a;
if (a>=0)
(a--);
while (a==0)
if (a<=0)
(a++);
while (a==0)
C/C++
Что не так в этой программе
>Что не так в этой программе
Эта программа просто занимается какой-то фигней, вместо того, чтобы делать то, что требуется. Не надейся, что если ты будешь лепить команды как попало, компьютер тебя волшебным образом поймет - это так не работает.
Эта программа просто занимается какой-то фигней, вместо того, чтобы делать то, что требуется. Не надейся, что если ты будешь лепить команды как попало, компьютер тебя волшебным образом поймет - это так не работает.
Валёк Максимов
очень помогли
#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';}
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';}
это не программа, а кусок кода, а точнее месиво кода.
В первой строке объявляется переменная 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
Делай циклом
-
Похожие вопросы
- Написать программу на языке Си
- Некорректно работает написанная программа
- Написать программу на с++
- Помогите написать программу на С++
- Написать программы на СИ
- Помогите разобраться с программой
- Написать программу в С++ (нахождение площади трапеции)
- Помогите дополнить программу по условию
- Программа не выполняет условия задания, исходный массив меняет сам себя, помогите найти ошибку
- Программа на с++.