Архив блога

пятница, 21 января 2011 г.

Задача 98.

Напишите программу, которая после введенного с клавиатуры числа (в диапазоне от 1 до 999), обозначающего денежную единицу, дописывает слово "рубль" в правильной форме. Например, 12 рублей, 21 рубль и т.д.

/*
    Программа дописывает правильную форму слова "рубль"
    для введенного числа от 1 до 999.
*/
#include "locale.h"
#include <math.h>
#include <curses.h>
#include <stdio.h>

int main()
{
    int dengi, ostatok, i;
    char *slovo[15] = {"рубль", "рубля", "рублей"};
    char *loc;
     loc = setlocale(LC_CTYPE,"ru_RU.UTF-8");
    initscr();
   
    printw("Введите число от 1 до 999: ");
    scanw("%i", &dengi);
   
    if(dengi < 1 || dengi > 999)
    {
        printw("Число должно быть от 1 до 999.");
    }
    else
    {
   
        if(dengi >= 100)
            ostatok = dengi % 100;
        else ostatok = dengi;

        if(ostatok >= 11 && ostatok <= 14)
            i = 2;
        else
        {
            ostatok = ostatok % 10;
            if(ostatok >= 2 && ostatok <= 4)
                i = 1;
            else
            {
                if(ostatok == 1)
                i = 0;
                else
                i = 2;
        }
        }           
    }
    printw("Это будет %i %s", dengi, slovo[i]);
   
   
   
    getch();
    endwin();
    return 0;
}

Комментариев нет:

Отправить комментарий