Scanf работает, но значение не меняется - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день! Не могу понять эту проблему, прям загадка какая-то. Мы задаем переменной значение 75.
#include <stdio.h>
 
int main(void) {
    
    int currentGrade = 0;
    int test = 0;
    
    scanf("%d", &currentGrade);           // допустим 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));

Объяснение кода листинга программы

  1. double test = 0; - объявление переменной типа double с именем test и инициализацией значения 0.
  2. ... - здесь могут быть другие операции или действия, но они не указаны в вопросе.
  3. test = (double)currentGrade*(1 - (20/100)); - присваивание переменной test результата вычисления выражения (double)currentGrade*(1 - (20/100)).
    • (double)currentGrade - приведение типа переменной currentGrade к типу double.
    • 1 - (20/100) - вычисление значения выражения, где 20/100 преобразуется в десятичную дробь, а затем результат вычитается из 1.
    • Полученный результат умножается на значение переменной currentGrade.
    • Результат вычисления присваивается переменной test.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5