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

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

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

диапазон -99...99 пример 32- тридцать два я вот так делал.но выдаёт ошибки.можете указать в чем они заключаются?(не надо сетовать на алгоритм)
Листинг программы
  1. /****************************************************************************
  2. * *
  3. * File : main.c *
  4. * *
  5. * Purpose : Console mode (command line) program. *
  6. * *
  7. * History : Date Reason *
  8. * 00/00/00 Created *
  9. * *
  10. ****************************************************************************/
  11. #include <stdio.h>
  12. #include <string.h>
  13. /****************************************************************************
  14. * *
  15. * Function: main *
  16. * *
  17. * Purpose : Main entry point. *
  18. * *
  19. * History : Date Reason *
  20. * 00/00/00 Created *
  21. * *
  22. ****************************************************************************/
  23. int main(int argc, char *argv[])
  24. {
  25. /* TODO: Enter code here */
  26. int chislo;
  27. char s1[15],s2[15],s[15],sf[50];
  28. printf("vvedite chislo\n");
  29. scanf("%d\n",&chislo);
  30. if (chislo<0)
  31. s="минус";
  32. else
  33. s="";
  34. if (chislo/10<0)
  35. goto odinar;
  36. else
  37. {
  38. if ((chislo/10==1) && (chislo%10!=0))
  39. goto last;
  40. else
  41. {
  42. if (chislo%10==0)
  43. {
  44. switch(chislo/10)
  45. {
  46. case 1: s1="десять";
  47. case 2: s1="двадцать";
  48. case 3: s1="тридцать";
  49. case 4: s1="сорок";
  50. case 5: s1="пятьдесят";
  51. case 6: s1="шестьдесят";
  52. case 7: s1="семьдесят";
  53. case 8: s1="восемьдесят";
  54. case 9: s1="девяносто";
  55. }
  56. }
  57. else
  58. goto odinar1;
  59. }
  60. }
  61. odinar:
  62. switch(chislo)
  63. {
  64. case 1: s1="один";
  65. case 2: s1="два";
  66. case 3: s1="три";
  67. case 4: s1="четыре";
  68. case 5: s1="пять";
  69. case 6: s1="шесть";
  70. case 7: s1="семь";
  71. case 8: s1="восемь";
  72. case 9: s1="девять";
  73. }
  74. odinar1:
  75. switch(chislo%10)
  76. {
  77. case 1: s2="один";
  78. case 2: s2="два";
  79. case 3: s2="три";
  80. case 4: s2="четыре";
  81. case 5: s2="пять";
  82. case 6: s2="шесть";
  83. case 7: s2="семь";
  84. case 8: s2="восемь";
  85. case 9: s2="девять";
  86. }
  87. last:
  88. switch(chislo)
  89. {
  90. case 11: s1="одинадцать";
  91. case 12: s1="двенадцать";
  92. case 13: s1="тринадцать";
  93. case 14: s1="четырнадцать";
  94. case 15: s1="пятнадцать";
  95. case 16: s1="шестнадцать";
  96. case 17: s1="семнадцать";
  97. case 18: s1="восемнадцать";
  98. case 19: s1="девятнадцать";
  99. }
  100. sf=strcat(s,s1,s2);
  101. puts(" resultat", sf);
  102. return 0;
  103. }

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

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

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

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

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


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

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

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы