Вывести словесное описание числа - C (СИ) (70432)
Формулировка задачи:
Здравствуйте! Нужна помощь.
Разработать программу согласно варианту задания. Типы данных определяются из специфики задачи, если их тип не указан явно. При реализации программы использовать оператор выбора switch.
Дано вещественное число в формате ХХ.ХХ‚ вывести словесное описание этого числа.
Пример: 54.23 -— пятьдесят четыре целые, двадцать три сотые.
Решение задачи: «Вывести словесное описание числа»
textual
Листинг программы
#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("desyat "); break; case 11: printf("odinatsat "); break; case 12: printf("dvenatsat "); break; case 13: printf("trinadsat "); break;
case 14: printf("chetirnadsat "); break; case 15: printf("pyatynadsat "); break; case 16: printf("shesnadsat "); break; case 17: printf("semnadsat "); break;
case 18: printf("vosemnadsat "); break; case 19: printf("devyatnadsat "); break; default: printf("\n "); }
if (i==1) { printf("celih "); } else { printf("sotih \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("dvadzat "); break; case 3: printf("tridzat "); break; case 4: printf("sorok "); break; case 5: printf("pyatdesyat "); break;
case 6: printf("shestdesyat "); break; case 7: printf("semdesyat "); break; case 8: printf("vosemdesyat "); break; case 9: printf("devyanosto "); break; default: printf("\n "); } }
else { switch ( x ) {
case 0: printf(" "); case 1: printf("odin "); break; case 2: printf("dva "); break; case 3: printf("tri "); break; case 4: printf("chetire "); break;
case 5: printf("pyaty "); break; case 6: printf("shesty "); break; case 7: printf("sem "); break; case 8: printf("vosem "); break;
case 9: printf("devyat "); break;
default: printf("\n ");} }
}
if (i==1) { if (x>=2 && x<=4) printf("celie ");
else printf("celih "); }
else { if (x>=2 && x<=4) printf("sotie \n");
else printf("sotih \n"); }
}
}
}
Объяснение кода листинга программы
Список элементов кода:
- Объявление переменных: int a,b,c,i,j,x,y; float v;
- Ввод числа с плавающей точкой с помощью функции scanf: printf (
vvedite chislo \n); scanf (%f, &v ); - Вычисление чисел c, b и y: c=v*100; b=100; y=10;
- Использование цикла for для выполнения вычислений: for ( i = 1; i <= 2; i ++ )
- Вычисление числа a путем деления c на b, затем остатка от деления c на b: a=c/b; c= c%b; b=b/100;
- Проверка диапазона числа a: if (a>=10 && a<=19)
- Использование оператора switch для вывода словесного описания числа a: switch ( a ) {
- Вывод словесного описания числа a: case 10: printf(
desyat); break; case 11: printf(odinatsat); break; case 12: printf(dvenatsat); break; case 13: printf(trinadsat); break; - Вывод словесного описания числа a: case 14: printf(
chetirnadsat); break; case 15: printf(pyatynadsat); break; case 16: printf(shesnadsat); break; case 17: printf(semnadsat); break; - Вывод словесного описания числа a: case 18: printf(
vosemnadsat); break; case 19: printf(devyatnadsat); break; default: printf(\n); } - Вывод слова
celihилиsotihв зависимости от значения i: if (i==1) { printf(celih); } else { printf(sotih \n);} - Вывод словесного описания числа x: if (j==1) { switch ( x ) {
- Вывод словесного описания числа x: case 2: printf(
dvadzat); break; case 3: printf(tridzat); break; case 4: printf(sorok); break; case 5: printf(pyatdesyat); break; - Вывод словесного описания числа x: case 6: printf(
shestdesyat); break; case 7: printf(semdesyat); break; case 8: printf(vosemdesyat); break; case 9: printf(devyanosto); break; default: printf(\n); } } - Вывод словесного описания числа x: switch ( x ) {
- Вывод словесного описания числа x: case 0: printf(
`); case 1: printf(odin); break; case 2: printf(dva); break; case 3: printf(tri); break; case 4: printf(chetire `); break; - Вывод словесного описания числа x: case 5: printf(
pyaty); break; case 6: printf(shesty); break; case 7: printf(sem); break; case 8: printf(vosem); break; - Вывод словесного описания числа x: case 9: printf(
devyat); break; - Вывод словесного описания числа x: default: printf(
\n);} } - Вывод слова
celieилиsotieв зависимости от значения i: if (x>=2 && x<=4) printf(celie); - Вывод слова
sotieилиsotihв зависимости от значения i: else printf(sotih \n); - Вывод слова
sotihилиsotieв зависимости от значения i: else { if (x>=2 && x<=4) printf(sotie \n); - Вывод слова
sotihилиsotieв зависимости от значения i: else printf(sotih \n); }