Написать программа которая вводит целое число и выводит прописью

Содержание

Задача Преобразовать число к прописному текстовому виду, например
2141 — Две тысячи сто сорок один.

Указанная задача возникает при необходимости вывести сумму прописью, а также может использоваться для составления капчи для сайтов (например, в форме комментариев ниже).

Перед решением задачи необходимо определиться с диапазоном ввода числа. Предположим, что вводимое число будет состоять из 4 разрядов:

Для решения задачи необходимо разбить число на значащие разряды и каждому разряду поставить в соответствие некоторую текстовую строку. При этом необходимо учитывать, что числа в диапазоне от 10 до 20 не нужно разделять на десятки и единицы, например
11 — одиннадцать, в то время как
21 — двадцать один.

Реализация на C++

#define _CRT_SECURE_NO_WARNINGS // для использования strcpy()
#include
#include
using namespace std;
void captcha( int num, char *s) // num — число, s — указатель на строку

Читайте также:
Линейная программа это выберите ответ

Числа прописью в Excel быстро и без вспомогательных инструментов!


int position = 0; // позиция в строке
int x[4]; // массив разрядов
int div = 1000; // делитель на разряды
int var = num; // частное от деления
int rest; // остаток от деления
for ( int i = 0; i < 4; i++)
rest = ( int )(var / div);
x[i] = rest;
var = var — rest*div;
div = div / 10;
>
// Тысячи
switch (x[0])
case 1: strcpy(s, «Одна тысяча » ); break ;
case 2: strcpy(s, «Две тысячи » ); break ;
case 3: strcpy(s, «Три тысячи » ); break ;
case 4: strcpy(s, «Четыре тысячи » ); break ;
case 5: strcpy(s, «Пять тысяч » ); break ;
case 6: strcpy(s, «Шесть тысяч » ); break ;
case 7: strcpy(s, «Семь тысяч » ); break ;
case 8: strcpy(s, «Восемь тысяч » ); break ;
case 9: strcpy(s, «Девять тысяч » ); break ;
default: break ;
>
position = strlen(s);
// Сотни
switch (x[1])
case 1: strcpy(s + position, «сто » ); break ;
case 2: strcpy(s + position, «двести » ); break ;
case 3: strcpy(s + position, «триста » ); break ;
case 4: strcpy(s + position, «четыреста » ); break ;
case 5: strcpy(s + position, «пятьсот » ); break ;
case 6: strcpy(s + position, «шестьсот » ); break ;
case 7: strcpy(s + position, «семьсот » ); break ;
case 8: strcpy(s + position, «восемьсот » ); break ;
case 9: strcpy(s + position, «девятьсот » ); break ;
default: break ;
>
position = strlen(s);
// Десятки
switch (x[2])
case 1:
// Числа от 10 до 19
switch (x[3])
case 0: strcpy(s + position, «десять » ); break ;
case 1: strcpy(s + position, «одиннадцать » ); break ;
case 2: strcpy(s + position, «двенадцать » ); break ;

Число в excel как преобразовать и написать прописью


case 3: strcpy(s + position, «тринадцать » ); break ;
case 4: strcpy(s + position, «четырнадцать » ); break ;
case 5: strcpy(s + position, «пятнадцать » ); break ;
case 6: strcpy(s + position, «шестнадцать » ); break ;
case 7: strcpy(s + position, «семнадцать » ); break ;
case 8: strcpy(s + position, «восемнадцать » ); break ;
case 9: strcpy(s + position, «девятнадцать » ); break ;
>
x[3] = 0;
position = strlen(s);
break ;
case 2: strcpy(s + position, «двадцать » ); break ;
case 3: strcpy(s + position, «тридцать » ); break ;
case 4: strcpy(s + position, «сорок » ); break ;
case 5: strcpy(s + position, «пятьдесят » ); break ;
case 6: strcpy(s + position, «шестьдесят » ); break ;
case 7: strcpy(s + position, «семьдесят » ); break ;
case 8: strcpy(s + position, «восемьдесят » ); break ;
case 9: strcpy(s + position, «девяносто » ); break ;
default: break ;
>
position = strlen(s);
// Единицы
switch (x[3]) case 1: strcpy(s + position, «один » ); break ;
case 2: strcpy(s + position, «два » ); break ;
case 3: strcpy(s + position, «три » ); break ;
case 4: strcpy(s + position, «четыре » ); break ;
case 5: strcpy(s + position, «пять » ); break ;
case 6: strcpy(s + position, «шесть » ); break ;
case 7: strcpy(s + position, «семь » ); break ;
case 8: strcpy(s + position, «восемь » ); break ;
case 9: strcpy(s + position, «девять » ); break ;
default: break ;
>
position = strlen(s);
>
int main()
int m;
srand(time(NULL));
system( «chcp 1251» );
system( «cls» );
char s[80];
for ( int i = 0; i m = rand() % (10000 — 1000) + 1000;
captcha(m, s);
cout >
cin.get();
return 0;
>

Читайте также:
Программа для телефона штрих код

Для генерации случайных чисел в диапазоне 1000-9999 используется формула, приведенная здесь.

Число прописью

Результат выполнения

Источник: prog-cpp.ru

Решить в Python 8. Напишите программу, которая вводит целое число, не превышающее 100, и выводит его прописью, например, 21-«двадцать один».

Объявляем функцию number_in_words, которая и обозначает перевод числа в его прописной вид. Далее делаем проверку, передано ли нам число «100», если это так — выводим текст «сто». Также делаем для нуля. Иначе выполняем следующий код.

Регистрируем 3 словаря: 1 — для цифр (numbers_simple), от 1 до 9; 2 — для чисел от 11 до 19; 3 — для десятков. Далее — получаем первую цифру и последнюю цифру числа в переменные digi2 и digi1 соответственно.

Далее, если число меньше 10 — то возвращаем его словесный вид из словаря numbers_simple с помощью get(). Если число находится в десятках (и оно больше либо равно 10), возвращаем это число из словаря teens. Если число находится в интервале от 10 до 20, то возвращаем это число в словесном виде из словаря teens. И для остальных оставшихся чисел мы возвращаем словесный вид его первой цифры через пробел со словесном видом второй цифры. В конце — вызываем этот метод, передав ему введённое целое число с клавиатуры.

Источник: znanijam.net

Написать программа которая вводит целое число и выводит прописью

gimazetdinov20

August 2022 1 15 Report

Напишите программу ,которая вводит целое число ,не превышающее 100,и выводит его прописью,например:21>»Двадцать один»

Answers
var
a,b,c,t,z:integer;
m,k,l:string;
label 1,2,3,4;
begin
writeln (‘Введите число от 1-го до 100’);
repeat read(a) until (a>=0)and(a<=100);
b:=a div 10;
c:=a mod 10;
if a=100 then goto 2;
if a=0 then goto 1;
if (a>9) and (a<20) then goto 4;
case b of
2:m:=’Двадцать ‘;
3:m:=’Тридцать ‘;
4:m:=’Сорок ‘;
5:m:=’Пятьдесят ‘;
6:m:=’Шестдесят ‘;
7:m:=’Семдесят ‘;
8:m:=’Восемьдесят ‘;
9:m:=’Девяносто ‘; end;
case c of
1:k:=’один’;
2:k:=’два’;
3:k:=’три’;
4:k:=’четыре’;
5:k:=’пять’;
6:k:=’шесть’;
7:k:=’семь’;
8:k:=’восемь’;
9:k:=’девять’;
end;
writeln (m,k);
goto 3;
2:writeln (‘Сто’);
goto 3;
1: writeln (‘Ноль’);
goto 3;
4: if a=10 then writeln (‘Десять’);
if a=11 then writeln (‘Одиннадцать’);
if a=12 then writeln (‘Двенадцать’);
if a=13 then writeln (‘Тринадцать’);
if a=14 then writeln (‘Четырнадцать’);
if a=15 then writeln (‘Пятьнадцать’);
if a=16 then writeln (‘Шестнадцать’);
if a=17 then writeln (‘Семнадцать’);
if a=18 then writeln (‘Восемнадцать’);
if a=19 then writeln (‘Девятнадцать’);
3:end.

3 votes Thanks 9

gimazetdinov20 Это правильно??

Relhem А нет. Не выводит числа от 10-и до 20-и. Сейчас подправлю.

Relhem Подправил. Немного на разумно, конечно, но в целом, это не 100 условных операторов XD.

gimazetdinov20 щас то нормально?

Relhem Сейчас отлично, уверяю 🙂

More Questions From This User See All

gimazetdinov20

gimazetdinov20 August 2022 | 0 Ответы

arsen dernul karinu za kosichkukarina stuknula arsena po golove uchebnikomiz kot

gimazetdinov20

gimazetdinov20 July 2022 | 0 Ответы

chto eto oznachaet2bd39973494aa10c802f412d8c227396 270

gimazetdinov20

gimazetdinov20 July 2022 | 0 Ответы

pomogite plz ochen budu radsochinenie po literature na temu chto znachit byt schas

gimazetdinov20

gimazetdinov20 July 2022 | 0 Ответы

mama kupila svoi detyam konfetesli ona razdast svoim detyam po dve konfetyto tri

gimazetdinov20

gimazetdinov20 July 2022 | 0 Ответы

semya maksimovyh sostoit iz papymamy i chetveryh detejsrednij rost detej ravendbb7478e6a6b4c21f47b34b00ddb82ab 49819

gimazetdinov20

gimazetdinov20 August 2021 | 0 Ответы

Источник: scholar.tips

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru