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

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

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

Добрый день! Не могу понять эту проблему, прям загадка какая-то. Мы задаем переменной значение 75.
Листинг программы
  1. #include <stdio.h>
  2. int main(void) {
  3. int currentGrade = 0;
  4. int test = 0;
  5. scanf("%d", &currentGrade); // допустим 75
  6. test = currentGrade*(1 - (20/100)); // 75 * (1 - 0.2) = 60
  7. printf(" test %d", test); // а выводит 75!
  8.  
  9. return 0;
  10. }

Решение задачи: «Scanf работает, но значение не меняется»

textual
Листинг программы
  1. double test = 0;
  2. ...
  3. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут