Попытка решить этот вопрос у меня есть для HW, но я застрял в одной маленькой проблеме. У меня есть серия , если операторы, но программа просто пропускает инструкцию if, даже если условие выполнено. Пример: пользователь хочет выполнить 5 - 2, вместо перехода на второй , если заявление для проверки, когда пользователь вводил минус, программа просто пропускает каждый , если.C Программа пропущена, если заявления даже при соблюдении условий
Возникает вопрос:
Рассмотрим программу C, которая считывает два действительных числа с клавиатуры следует символ, где символ может быть одним из операторов +, -, *, /, или %, обеспечивающие сложение, вычитание, умножение, деление или остаток соответственно. Затем на экране появится результат . Например, если пользователь вводит: 2,0 3,0%, то ваш код будет отображен: 2% 3 = 2 Примечание: В приведенном выше примере входы представляют собой реальные числа, но остаток выполняет только целую операцию . Следовательно, два действительных числа должны быть отлиты от , что позволяет вычислять остаток. В случае, когда введен неверный оператор (например, $), сообщение об ошибке печатается на стандартный вывод , например. Неверный ввод!
Мой код:
#include <stdio.h>
int main(void){
double num1, num2, plus, minus, divide, mult, op;
printf("Enter two numbers and an operation you would like to perform on those number: \n");
scanf("%lf %lf %lf", &num1, &num2, &op);
if(op=='+')
{
plus=(num1 + num2);
printf("%lf + %lf = %lf", num1, num2, plus);
}
else if(op=='-')
{
minus=num1-num2;
printf("%lf - %lf = %lf", num1, num2, minus);
}
else if(op=='/')
{
divide=num1/num2;
printf("%lf/%lf = %lf", num1, num2, divide);
}
else if(op=='%')
{
int num1, num2, remain;
remain= (num1%num2);
printf("%d %% %d = %d", num1, num2, remain);
}
else
{
printf("Invalid entry!");
}
return 0;
}
бы очень признателен за помощь по этому вопросу, которые боролись за некоторое время на такой маленькой ошибки.
Вы объявляете op как double, это должен быть символ. –