Conversation
| << std::endl; | ||
| std::cout << "a=2\n" | ||
| << "b=8\n" | ||
| << "c=4\n"; |
There was a problem hiding this comment.
я немного не понял этот вывод? вы предлагаете пользоателю ввести числа в таком диапазоне или как это понять?
| std::cout | ||
| << "This program calculates the roots of a quadratic equation of type:\n" | ||
| << "a*x^2+b*x+c \n" | ||
| << std::endl; |
There was a problem hiding this comment.
а зачем вы тут вычисляете корни, а потом ниже еще делаете вычисление?
наверное код что выше это для теста, а ниже это реальный код соответсвующий задачи?
| std::cout << "Enter b" << std::endl; | ||
| std::cin >> b; | ||
| std::cout << "Enter c" << std::endl; | ||
| std::cin >> c; |
There was a problem hiding this comment.
выше вы проверили для a а думаю что тут же надо проверить и b и c
| << std::endl; | ||
| int a; | ||
| int b; | ||
| int c; |
There was a problem hiding this comment.
обьявляйте переменный по мере их использования, т.е. тут обьявите переменную a
int a;
std::cout << "Enter data for value a" << std::endl;
std::cin >> a;
while (a == 0 || a > 255 || a < -255) {
std::cout << "Not correct number please try again \n"
<< "Enter a" << std::endl;
std::cin >> a;
}
int c;
std::cout << "Enter data for value c" << std::endl;
std::cin >> c;
while (c == 0 || c > 255 || c < -255) {
std::cout << "Not correct number please try again \n"
<< "Enter c" << std::endl;
std::cin >> c;
}
| std::cout << "Enter c" << std::endl; | ||
| std::cin >> c; | ||
| int d; | ||
| d = b * b - 4 * a * c; |
There was a problem hiding this comment.
думаю что это будет немного не коректно, ну вопервых зачем выше обьявлять переменную, а ниже присваивать ей значение, если это можно совместить. Потом тип переменной d он должен быть больше по размеру чем само выражение которое стоит справа от оператора =, это для того чтобы не получить переполнение.
лучше для этого написать будет так
auto d = b * b - 4 * a * c;
так точно вы не получите переполнение
| std::cout << "First root \n" << x1 << std::endl; | ||
| double x2 = (-b - sqrt(d)) / (2 * a); | ||
| std::cout << "Second root \n" << x2; | ||
| } |
There was a problem hiding this comment.
напишите вывод в случае если d == 0 или < 0, там типа нет корней что то такого. А то получаеться пользователь вводил данные, а потом если что то ввел неправильно если d не больше 0, то не экране мы не получим ничего, надо как то сообщить пользователю что что пошло не так. Т.е. дать фитбек пользователю
| int c; | ||
| std::cout << "Enter a" << std::endl; | ||
| std::cin >> a; | ||
| while (a == 0 || a > 255 || a < -255) { |
There was a problem hiding this comment.
для литералов 255 и -255 заведите константы. Так проще если вы например решили поменять диапазон, то вам проще изменить контанты чем бегать по всему тексту искать где этот литерал встречался в коде.
| int a; | ||
| int b; | ||
| int c; | ||
| std::cout << "Enter a" << std::endl; |
There was a problem hiding this comment.
напишите пользователю что у вас есть ограничения на ввод для переменной, вы же ниже проверяете на 255 и -255, т.е. вы должны предупредить пользователя сказав что у вас есть ограничения и вы их будете проверять
No description provided.