Scanf работает, но значение не меняется - C (СИ)
Формулировка задачи:
Добрый день! Не могу понять эту проблему, прям загадка какая-то. Мы задаем переменной значение 75.
#include <stdio.h>
int main(void) {
int currentGrade = 0;
int test = 0;
scanf("%d", ¤tGrade); // допустим 75
test = currentGrade*(1 - (20/100)); // 75 * (1 - 0.2) = 60
printf(" test %d", test); // а выводит 75!
return 0;
}Решение задачи: «Scanf работает, но значение не меняется»
textual
Листинг программы
double test = 0; ... test = (double)currentGrade*(1 - (20/100));
Объяснение кода листинга программы
double test = 0;- объявление переменной типа double с именемtestи инициализацией значения 0....- здесь могут быть другие операции или действия, но они не указаны в вопросе.test = (double)currentGrade*(1 - (20/100));- присваивание переменнойtestрезультата вычисления выражения(double)currentGrade*(1 - (20/100)).(double)currentGrade- приведение типа переменнойcurrentGradeк типу double.1 - (20/100)- вычисление значения выражения, где 20/100 преобразуется в десятичную дробь, а затем результат вычитается из 1.- Полученный результат умножается на значение переменной
currentGrade. - Результат вычисления присваивается переменной
test.