Я пытаюсь делать упражнения из книги: Программирование - Принципы и практика Использование C++ (Second Edition)[resolvedI не понимаю, почему моя программа не работает
Напишите программу, которая предлагает пользователю ввести три целочисленных значения, а затем выводит значения в числовой последовательности, разделенные запятыми. Таким образом, если пользователь вводит значения 10 4 6, выход должен быть 4, 6, 10. Если два значения одинаковы, их следует просто упорядочить вместе. Таким образом, входной 4 5 4 должен дать 4, 4, 5.
Это то, что я сделал:
#include "std_lib_facilities.h"
int main(){
int val1 = 0;
int val2 = 0;
int val3 = 0;
cout << "input 3 integers values with spaces between them\n";
cin >> val1 >> val2 >> val3;
int bigger = 0;
int middle = 0;
int smallest = 0;
if(val1 >= val2 && val1 >= val3) {
bigger = val1;
}
if (val1 <= val2 && val1 <= val3) {
smallest = val1;
}
else {
middle = val1;
}
if(val2 >= val1 && val2 >= val3) {
bigger = val2;
}
if (val2 <= val1 && val2 <= val3) {
smallest = val2;
}
else {
middle = val2;
}
if(val3 >= val1 && val3 >= val2) {
bigger = val3;
}
if (val3 <= val1 && val3 <= val2) {
smallest = val3;
}
else {
middle = val3;
}
cout << smallest << " " << middle << " " << bigger << '\n';
return 0;
}
Работа программы для некоторых значений, но не все, а именно: когда val3 является больше val1 и val2, я думаю, что в конце есть проблема: else {middle = val3; }
Коррекция Strousput: http://stroustrup.com/Programming/Solutions/Ch3/e3-6.cpp
Я сожалею, я не ставил никаких комментариев!
Thanks
попробуйте использовать (если ... else если ... else) – MatejKr
если (val3> = val1 && val3> = val2) { больше = val3; } else if (val3 <= val1 && val3 <= val2) { наименьший = val3; } else { средний = val3; } – MatejKr
Скомпилируйте все предупреждения и информацию об отладке (например, 'g ++ -Wall -Wextra -g'). Затем ** используйте отладчик ** (например, 'gdb') для запуска вашей программы шаг за шагом, чтобы понять ваши ошибки. –