Чего вы пытаетесь достичь с помощью этой строки?
scanf("%f %f %f %f", &sum, &difference, &product, "iont);
Для этого нужно взять четыре числа у пользователя и загрузить их в четыре переменные соответственно. Сразу после этой строки вы присваиваете новые значения этим четырем переменным, поэтому нет смысла загружать их значениями в этой строке кода.
Кроме того, какой смысл в следующем if
утверждении? (И все else if
заявления)
if(a + b)
printf("Answer = %f\n", &sum);
Ответ будет напечатан только в том случае, если сумма a
и b
не равна нулю. Если выражение в скобках после 'if' будет равно нулю, оно не выполнит код внизу. Если он оценивается как ненулевое значение, он выполнит код.
Другая проблема с приведенной выше строкой заключается в том, что вы передаете указатель на переменную sum
в функцию printf () вместо фактического значения переменной sum
. «& sum» возвращает адрес памяти переменной, но «sum» возвращает фактическое значение переменной. Так должно выглядеть так:
printf("Answer = %f\n", sum);
<ч />
Я заметил, что вы определили переменную choice
в верхней части вашей программы, но никогда не использовали ее. Из-за этого и вашей цепочки операторов else if
я предполагаю, что вы хотите дать пользователю выбор: добавлять, вычитать, умножать или делить.
Чтобы сделать это, я бы определил choice
как символ (символ) вместо целого и заставил бы пользователя ввести один из этих четырех символов, которые будут назначены переменной choice
: '+
',' -
',' *
'или' /
'.
Чтобы определить choice
как символ, напишите:
char choice;
Затем попросите пользователя ввести такой выбор:
scanf("%c", &choice);
Это берет один символ от пользователя и присваивает его choice
.
Наконец, измените ваши if
утверждения на что-то вроде этого:
if (choice == '+')
printf("Answer = %f\n", sum);
else if (choice == '-')
printf("Answer = %f\n", difference);
else
printf("Error: invalid choice.\n");
Вы также можете использовать для этого оператор switch
.