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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д