В чем ошибка? - C (СИ) (70363)

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

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

Листинг программы
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5. int main(void)
  6. {
  7. int n,a, y;
  8. setlocale(LC_ALL, "RUS");
  9. while (1)
  10. {
  11. puts("Программа склоняет слово рубль\n");
  12. puts("Введите число \n");
  13. scanf_s("%d", &n);
  14. if (n % 10 == 0 || (n >= 11 && n < 20) || n % 10 >= 5)
  15. printf("%d рублей \n", n);
  16. if (n % 10 == 1)
  17. printf("%d рубль \n", n);
  18. else
  19. printf("%d рубля \n", n);
  20. puts("Продолжить работу программы? 1-Да. 2-Нет.");
  21. scanf("%d", &a);
  22. if (a == 2)break;
  23. }
  24. system("pause");
  25. }
Выскакивает две строчки одна правильная, а вторая всегда с "рубля"

Решение задачи: «В чем ошибка?»

textual
Листинг программы
  1. if (n % 10 == 1 && n != 11)
  2.     printf("%d рубль \n", n);
  3. else{
  4.     if (n % 10 == 0 || (n >= 11 && n < 20) || n % 10 >= 5)
  5.         printf("%d рублей \n", n);
  6.     else
  7.         printf("%d рубля \n", n);
  8. }

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

  1. Проверяется, делится ли число n нацело на 10 (остаток от деления на 10 равен 1 и число n не равно 11).
  2. Если условие выполняется, то выводится число n в формате n рубль.
  3. Если условие не выполняется, то проверяется, является ли число n равным 0 или находится в диапазоне от 11 до 19 (включительно), или остаток от деления на 10 больше или равен 5.
  4. Если условие выполняется, то выводится число n в формате n рублей.
  5. Если условие не выполняется, то выводится число n в формате n рубля.

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


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

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

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

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

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

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