Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2011, 19:56   #1
Fackey
 
Регистрация: 08.12.2010
Сообщений: 5
По умолчанию для чисел от1 до 100 организовать вывод их словесного эквивалента C++

Доброго времени суток )) На с++ нужна программа " для чисел от1 до 100 организовать вывод их словесного эквивалента " может у когонибудь из вас есть рабочий код программы ?) Думаю что тема будет полезна для многих посетителей , которые ищут решение данной проблемы , тут такого в поиске не нашел . Буду благодарен за помощь .
Fackey вне форума Ответить с цитированием
Старый 15.02.2011, 20:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не совсем универсально, но работает помаленьку:
Код:
#include "stdafx.h"
#include <locale>
char Один[10][20]={"Один","два","три","четыре","пять","шесть","семь","восемь","девять","десять"};
char deca[20]="надцать";
char Десять[10][30]={"двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемдесят","девяносто"};

int _tmain(int argc, _TCHAR* argv[])
{
	int Число=71,k=0;
	char Res[255]="";
	int Десяток=Число/10-2,Единичность=Число%10-1;
	if(Десяток!=-2){	for(int l=0;Десять[Десяток][l];l++) Res[k++]=Десять[Десяток][l];Res[k++]=' ';}
	if(Число>10&&Число<20) k=0; 
	for(int l=0;Один[Единичность][l];l++) Res[k++]=Один[Единичность][l];
	if(Число>10&&Число<20) 
		for(int l=0;deca[l];l++) Res[k++]=deca[l];

	Res[k++]=0;
	setlocale(LC_ALL,"Russian");
	printf("%s",Res);getchar();
	return 0;
}
I'm learning to live...

Последний раз редактировалось Stilet; 15.02.2011 в 20:18.
Stilet вне форума Ответить с цитированием
Старый 15.02.2011, 20:20   #3
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

В самом простом случае
Код:
var dig :array[1..100] of string;
n :integer;
begin
dig[1] := 'one';
dig[2] := 'two';
.
.
.
dig[100] := 'one hundred';
Writeln('Enter n - ');
read(n);
writeln(n,' - ',dig[n]);
end.
Можно немного оптимизировать,занести в массив 1..9,10-20,30,40..100 все недостающие "клеить" из имеющихся.

Упс не заметил что на с++, пусть будет еще и на паскале решение)
Пишу программы на заказ, контакты под аватаром!
Отзывы тут

Последний раз редактировалось Stepler; 15.02.2011 в 20:23.
Stepler вне форума Ответить с цитированием
Старый 15.02.2011, 20:38   #4
Д_М
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 92
По умолчанию

Цитата:
Не совсем универсально...
Для 10 <= N < 20 уж совсем коряво получается.
Надо еще один массив строк заводить.
Д_М вне форума Ответить с цитированием
Старый 15.02.2011, 20:51   #5
Fackey
 
Регистрация: 08.12.2010
Сообщений: 5
По умолчанию

Спасибо за помощь )

Последний раз редактировалось Fackey; 15.02.2011 в 21:10.
Fackey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как организовать вывод из бд в таблицу 5*7 ? xxxsas PHP 7 17.05.2010 22:45
Найти произведение всех чётных чисел от -100 до 100. Makcumqa Помощь студентам 8 18.03.2010 22:31
задачка на 100 случайных чисел igarek222 Фриланс 9 09.10.2009 09:46
Сгенерировать последовательность 100, случ. чисел (и сделать график) igarek222 Помощь студентам 6 08.10.2009 12:47
заполнить файл целыми числами из отрезка [—100; 100] с помощью датчика случайных чисел. ALEX-7-7-7 Паскаль, Turbo Pascal, PascalABC.NET 4 05.04.2009 14:51