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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2011, 00:45   #1
Динар Габбасов
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 23
По умолчанию программа которая переводит введенные числа в буквенную начертанию (надо немного исправить)

Уважаемые программисты, помогите исправить программу, программа должна введенное с клавиатуры число переводить в письменное начертание, Например: пишем 254 выводит "dvesti pyatdesyat 4etire"
Я составил программу но она почему то не правильно работает, точнее вообще не находит ничего, не могли бы объяснить в чем проблема или помочь доработать программу, всем заранее благодарен.
Код:
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main ( )
{ //char *k[9]={"sto","dvesti","3","4","5" ,"6","7","8","9"};
 char *s[19][15]=
 {
        {"null","odin","dva","try","4etire" ,"pyat","shest","sem","vosem","devat"},
        {"desyat","odinadcat","dvenadcat"," trindcat","4etirnadcat","pyatnadcat ",
         "shistnadcat","simnadcat","vosemnad cat","deviatnadcat"},
        {"dvadcat"},
        {"tridcat"},
        {"sorok"},
        {"piatdeciat"},
        {"shestdeciat"},
        {"semdeiat"},
        {"vosemdeciat"},
        {"devianosto"},
        {"sto"},
        {"dvesti"},
        {"tristo"},
        {"4etiristo"},
        {"pyatsot"},
        {"shestsot"},
        {"semsot"},
        {"vosemsot"},
        {"devyatsot"}
 };
 
 for(int x=2;x<10;x++)
        for(int y=1;y<10;y++)
        {
                s[x][y]=s[0][y];
        }
        printf("vvedite 4islo v deapozone ot 1 do 999 :");
        int i=0;
        while (i);
        {
                scanf("%d",&i);
                if(i<999)
                {
                        if(i<99)
                        { 
                                if (i<20)
                                {
                                        if (i<10) printf("%s",s[0]);
                                        else 
                                        {
                                                if(i>=10 && i<20) printf("%s",s[1][i%10]);
                                        }
                                }
                                else 
                                {
                                        if((i%10)==0) printf("%s",s[i/10][0]);
                                        else {printf("%s %s\n",s[i/10][0],s[i/10][i%10]);
                                        }
                                }
                        }
                        else
                        {
                                if((i%100)==0) printf("%s",s[i/100+9][0]);
                                else 
                                {
                                        if ((i%100)!=0) printf ("%s %s", s[i/100+9][0],s[i/100][0]);
                                        else
                                        {
                                                printf ("%s %s %s",s[i/100+9][0],s[i/100][0],s[i/100][i%10]);
                                        }
                                }
                        }
                }
                else {printf ("error!\n");}
        }
 system("pause");
 return 0;
}
Динар Габбасов вне форума Ответить с цитированием
Старый 26.12.2011, 02:25   #2
AlexDark
Форумчанин
 
Аватар для AlexDark
 
Регистрация: 23.12.2011
Сообщений: 117
По умолчанию

Код:
#include<iostream>
#include <stdio.h>

 
int main ( )
{ //char *k[9]={"sto","dvesti","3","4","5" ,"6","7","8","9"};
 char *s[19][15]=
 {
        {"null","odin","dva","try","4etire" ,"pyat","shest","sem","vosem","devat"},
        {"desyat","odinadcat","dvenadcat"," trindcat","4etirnadcat","pyatnadcat ",
         "shistnadcat","simnadcat","vosemnad cat","deviatnadcat"},
        {"dvadcat"},
        {"tridcat"},
        {"sorok"},
        {"piatdeciat"},
        {"shestdeciat"},
        {"semdeiat"},
        {"vosemdeciat"},
        {"devianosto"},
        {"sto"},
        {"dvesti"},
        {"tristo"},
        {"4etiristo"},
        {"pyatsot"},
        {"shestsot"},
        {"semsot"},
        {"vosemsot"},
        {"devyatsot"}
 };
 
 for(int x=2;x<10;x++)
        for(int y=1;y<10;y++)
        {
                s[x][y]=s[0][y];
        }
        printf("vvedite 4islo v deapozone ot 1 do 999 :");
        int i=0;
        while (i);
        {
                scanf("%d",&i);
                if(i<999)
                {
                        if(i<99)
                        { 
                                if (i<20)
                                {
									if (i<10) printf("%s",s[0][i]); // тут была ошибка
                                        else 
                                        {
                                                if(i>=10 && i<20) printf("%s",s[1][i%10]);
                                        }
                                }
                                else 
                                {
                                        if((i%10)==0) printf("%s",s[i/10][0]);
                                        else {printf("%s %s\n",s[i/10][0],s[i/10][i%10]);
                                        }
                                }
                        }
                        else
                        {
                                if((i%100)==0) printf("%s",s[i/100+9][0]);
                                else 
                                {
                                        if (i%100!=0)
                                        {
                                                printf ("%s %s %s",s[i/100+9][0],s[i/10%10][0],s[0][i%10]); // и тут чтоб выделить 2й разряд  - нужно /10%10
                                        }
                                }
                        }
                }
                else {printf ("error!\n");}
        }
 system("pause");
 return 0;
}
AlexDark вне форума Ответить с цитированием
Старый 26.12.2011, 04:18   #3
Динар Габбасов
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 23
По умолчанию

спасибо большое! понял!)
Динар Габбасов вне форума Ответить с цитированием
Старый 26.12.2011, 06:23   #4
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию О боже!

Код:
"4etiristo"
Нет слов.
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа, сортирующая символы, введенные в Text1 Slava_Voronezh Помощь студентам 6 08.06.2010 16:23
с++. Програма которая проверяет, входят ли введенные координаты в нашу фигуру Alex1991 Помощь студентам 2 04.03.2009 21:44
Требуется написать программу которая переводит файл из одного вида в другой sarudan Помощь студентам 1 11.09.2008 16:17
нужна функция WinApi, которая переводит десятичное число в шестнадцатиричное??? Morskoivolk Win Api 3 02.04.2007 18:14