Правильно написать окончание слова рубль - C (СИ)
Формулировка задачи:
Нужно написать программу, что бы правильно склонялось слово рубль (10 рублей, 22 рубля, ну и т.д.). Для реализации основной задачи желательно использовать конструкцию switch-case-defaul. Подскажите пожалуйста как это лучше реализовать, в голову ничего не приходит.
Решение задачи: «Правильно написать окончание слова рубль»
textual
Листинг программы
char *p;
k = n%100;
if (k%10==0 || (k>=11 && k<20) || k%10 >=5) p = "ей";
else if (k%10==1) p = "ь";
else p = "я";
printf("%d рубл%s", n, p);
Объяснение кода листинга программы
В этом коде:
- Объявлена переменная
pтипаchar*(строка символов) и инициализирована значениемрубль. - Затем вычисляется значение переменной
kкак остаток от деления числаnна 100. - Далее выполняется проверка: если
kделится на 10 без остатка (k%10==0), илиkнаходится в диапазоне от 11 до 19 ((k>=11 && k<20)), или остаток от деленияkна 10 больше или равен 5 (k%10 >=5), то переменнойpприсваивается значениеей. - Если
kравно 1, то переменнойpприсваивается значениеь. - В противном случае переменной
pприсваивается значениея. - И наконец, с помощью функции
printf()выводится строка, состоящая из числаn, за которым следует символ рубля (%s) и значение переменнойp. Код выполняет функцию формирования окончания словарубльв зависимости от последней цифры числа.