Преобразовать число в его строковое представление через switch - C (СИ)

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

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

диапазон -99...99 пример 32- тридцать два я вот так делал.но выдаёт ошибки.можете указать в чем они заключаются?(не надо сетовать на алгоритм)
/****************************************************************************
 *                                                                          *
 * File    : main.c                                                         *
 *                                                                          *
 * Purpose : Console mode (command line) program.                           *
 *                                                                          *
 * History : Date      Reason                                               *
 *           00/00/00  Created                                              *
 *                                                                          *
 ****************************************************************************/
 
#include <stdio.h>
#include <string.h>
 
/****************************************************************************
 *                                                                          *
 * Function: main                                                           *
 *                                                                          *
 * Purpose : Main entry point.                                              *
 *                                                                          *
 * History : Date      Reason                                               *
 *           00/00/00  Created                                              *
 *                                                                          *
 ****************************************************************************/
 
int main(int argc, char *argv[])
{
    /* TODO: Enter code here */
    int chislo;
    char s1[15],s2[15],s[15],sf[50];
    printf("vvedite chislo\n");
    scanf("%d\n",&chislo);
    if (chislo<0)
    s="минус";
    else
    s="";
    if (chislo/10<0)
        goto odinar;
    else
    {
        if ((chislo/10==1) && (chislo%10!=0))
            goto last;
         else
        {
        if (chislo%10==0)
        {
             switch(chislo/10)
            {
              
                    case 1: s1="десять";
                    case 2: s1="двадцать";
                    case 3: s1="тридцать";
                    case 4: s1="сорок";
                    case 5: s1="пятьдесят";
                    case 6: s1="шестьдесят";
                    case 7: s1="семьдесят";
                    case 8: s1="восемьдесят";
                    case 9: s1="девяносто";
            }
          }
         else
             goto odinar1;
        }
    }
    odinar:
    switch(chislo)
    {
        case 1: s1="один";
        case 2: s1="два";
        case 3: s1="три";
        case 4: s1="четыре";
        case 5: s1="пять";
        case 6: s1="шесть";
        case 7: s1="семь";
        case 8: s1="восемь";
        case 9: s1="девять";
    }
    odinar1:
     switch(chislo%10)
    {
        case 1: s2="один";
        case 2: s2="два";
        case 3: s2="три";
        case 4: s2="четыре";
        case 5: s2="пять";
        case 6: s2="шесть";
        case 7: s2="семь";
        case 8: s2="восемь";
        case 9: s2="девять";
    }
    last:
       switch(chislo)
       {
         case 11: s1="одинадцать";
         case 12: s1="двенадцать";
         case 13: s1="тринадцать";
         case 14: s1="четырнадцать";
         case 15: s1="пятнадцать";
         case 16: s1="шестнадцать";
         case 17: s1="семнадцать";
         case 18: s1="восемнадцать";
         case 19: s1="девятнадцать";
        }
    sf=strcat(s,s1,s2);
    puts(" resultat", sf);    
    return 0;
}

Решение задачи: «Преобразовать число в его строковое представление через switch»

textual
Листинг программы
#include <string>
#include <boost/lexical_cast.hpp>
 
int main() {
  int         n = boost::lexical_cast<int>        ("123");  // n == 123
  std::string s = boost::lexical_cast<std::string>(n);      // s == "123"
 
  return 0;
}

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

  1. Преобразование числа в его строковое представление через switch не реализовано в данном коде.
  2. В данном коде используется библиотека Boost для безопасного приведения строки к числу и числа к строке.
  3. Строка 123 преобразуется в число со значением 123, используя функцию boost::lexical_cast().
  4. Число 123 преобразуется в строку 123, используя функцию boost::lexical_cast(n).
  5. Возвращаемое значение 0 от функции main() означает успешный конец работы программы.

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


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

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

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