В чем ошибка? - C (СИ) (70363)
Формулировка задачи:
#include <stdio.h> #include <locale.h> #include <stdlib.h> #include <math.h> int main(void) { int n,a, y; setlocale(LC_ALL, "RUS"); while (1) { puts("Программа склоняет слово рубль\n"); puts("Введите число \n"); scanf_s("%d", &n); if (n % 10 == 0 || (n >= 11 && n < 20) || n % 10 >= 5) printf("%d рублей \n", n); if (n % 10 == 1) printf("%d рубль \n", n); else printf("%d рубля \n", n); puts("Продолжить работу программы? 1-Да. 2-Нет."); scanf("%d", &a); if (a == 2)break; } system("pause"); }
Решение задачи: «В чем ошибка?»
textual
Листинг программы
if (n % 10 == 1 && n != 11) printf("%d рубль \n", n); else{ if (n % 10 == 0 || (n >= 11 && n < 20) || n % 10 >= 5) printf("%d рублей \n", n); else printf("%d рубля \n", n); }
Объяснение кода листинга программы
- Проверяется, делится ли число n нацело на 10 (остаток от деления на 10 равен 1 и число n не равно 11).
- Если условие выполняется, то выводится число n в формате
n рубль
. - Если условие не выполняется, то проверяется, является ли число n равным 0 или находится в диапазоне от 11 до 19 (включительно), или остаток от деления на 10 больше или равен 5.
- Если условие выполняется, то выводится число n в формате
n рублей
. - Если условие не выполняется, то выводится число n в формате
n рубля
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д