Вывести словесное описание числа - C (СИ) (148633)

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

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

Дано вещественное число в формате ХХ.ХХ, вывести словесное описание этого числа. Пример:54.23-пятьдесят четыре целые, двадцать три сотые. выводит только целые числа, после запятой не видел, в чем ошибка?
#include <stdio.h>
#include <math.h>
int main()
{
    int a, b, c, i, j, x, y;
    float v;
    printf("vvedite chislo \n");
    scanf("%f", &v);
    c = v * 100;
    b = 100;
    y = 10;
    for (i = 1; i <= 2; i++)
    {
        a = c / b;
        c = c % b;
        b = b / 100;
        if (a >= 10 && a <= 19)
        {
            switch (a)
            {
                case 10:
                    printf("десять ");
                    break;
                case 11:
                    printf("одиннадцать ");
                    break;
                case 12:
                    printf("двенадцать ");
                    break;
                case 13:
                    printf("тринадцать ");
                    break;
                case 14:
                    printf("четырнадцать ");
                    break;
                case 15:
                    printf("пятнадцать ");
                    break;
                case 16:
                    printf("шестнадцать ");
                    break;
                case 17:
                    printf("семнадцать ");
                    break;
                case 18:
                    printf("восемнадцать ");
                    break;
                case 19:
                    printf("девятнадцать ");
                    break;
                default:
                    printf("\n ");
            }
            if (i == 1)
            {
                printf("целых ");
            }
            else
            {
                printf("сотых \n");
            }
        }
 
        else
        {
            for (j = 1; j <= 2; j++)
            {
                x = a / y;
                a = a % y;
                y = y / 10;
 
                if (j == 1)
                {
                    switch (x)
                    {
                        case 2:
                            printf("двадцать ");
                            break;
                        case 3:
                            printf("тридцать ");
                            break;
                        case 4:
                            printf("сорок ");
                            break;
                        case 5:
                            printf("пятьдесят ");
                            break;
                        case 6:
                            printf("шестьдесят ");
                            break;
                        case 7:
                            printf("семьдесят ");
                            break;
                        case 8:
                            printf("восемьдесят ");
                            break;
                        case 9:
                            printf("девяносто ");
                            break;
                        default:
                            printf("\n ");
                    }
                }
 
                else
                {
                    switch (x)
                    {
                        case 0:
                            printf(" ");
                        case 1:
                            printf("одна ");
                            break;
                        case 2:
                            printf("две ");
                            break;
                        case 3:
                            printf("три ");
                            break;
                        case 4:
                            printf("четыре ");
                            break;
                        case 5:
                            printf("пять ");
                            break;
                        case 6:
                            printf("шесть ");
                            break;
                        case 7:
                            printf("семь ");
                            break;
                        case 8:
                            printf("восемь ");
                            break;
                        case 9:
                            printf("девять ");
                            break;
                        default:
                            printf("\n ");
                    }
                }
            }
            if (i == 1)
            {
                if (x >= 2 && x <= 4)
                    printf("целые ");
                else
                    printf("целых ");
            }
            else
            {
                if (x >= 2 && x <= 4)
                    printf("сотые \n");
                else
                    printf("сотых \n");
            }
        }
    }
}

Решение задачи: «Вывести словесное описание числа»

textual
Листинг программы
case 1:
    printf("одна ");
    break;
case 2:
    printf("две ");
    break;
case 3:
    printf("три ");
    break;

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

В данном коде используется оператор switch, который выполняет одну из нескольких инструкций в зависимости от значения переменной. В данном случае, переменная не указана, но предполагается, что она представляет собой число. Внутри каждого случая (case) указано действие - выводить определенное словесное описание числа. В данном примере, код выводит числительное от 1 до 3 и описывает его словами.

  1. В случае 1 (case 1) выводится слово одна.
  2. В случае 2 (case 2) выводится слово две.
  3. В случае 3 (case 3) выводится слово три. Для лучшего понимания, оформлю в виде списка:
  4. Вывести слово одна (case 1)
  5. Вывести слово две (case 2)
  6. Вывести слово три (case 3)

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


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

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

7   голосов , оценка 4 из 5
Похожие ответы