Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > арабские цифры заменить на римские


Автор: ARTIDESh 10.4.2011, 18:25
Привет..сразу к примеру:
1 утка 2 картошки 3 морковки 4 цифры 5 пять 6 размер 7 цвет 8 лет 9 жизней было
I утка II картошки III морковки IV цифры V пять VI размер VII цвет VIII лет IX жизней стало


ЗАМЕНИТЬ  АРАБСКИЕ ЦИФРЫ НА РИМСКИЕ 

Автор: volatile 10.4.2011, 19:58
а как будет 4294967295 римскими? smile

Автор: миг 10.4.2011, 20:46
Цитата(volatile @  10.4.2011,  19:58 Найти цитируемый пост)
а как будет 4294967295 римскими?

но по классическим правилам некоторые из цифр (I, X, C, M) могут повторяться  не более трех раз. и поэтому можно записать не больше 3999 чисел.
ARTIDESh, не совсем ясно причем тут С++

Автор: mes 10.4.2011, 20:54
Цитата(ARTIDESh @  10.4.2011,  17:25 Найти цитируемый пост)
ЗАМЕНИТЬ  АРАБСКИЕ ЦИФРЫ НА РИМСКИЕ  

ищите арабские и подставляете вместо них римские smile

Автор: azesmcar 10.4.2011, 21:00
а где вопрос?

Автор: mes 10.4.2011, 21:02
Цитата(azesmcar @  10.4.2011,  20:00 Найти цитируемый пост)
а где вопрос? 

тут как бы без вопросов, сразу задание :
Цитата(ARTIDESh @  10.4.2011,  17:25 Найти цитируемый пост)
ЗАМЕНИТЬ  АРАБСКИЕ ЦИФРЫ НА РИМСКИЕ  

при этом криком  smile 

Автор: ARTIDESh 10.4.2011, 21:42
это и есть вопрос как бэ)) как можно заменить??) пробовал через case..чет не вышло..как еще можно ??
надо делать в Си...с stdio.h

Автор: azesmcar 10.4.2011, 21:44
Цитата(mes @  10.4.2011,  21:02 Найти цитируемый пост)
тут как бы без вопросов, сразу задание :

аа..ну тогда другое дело smile 

Цитата(ARTIDESh @  10.4.2011,  21:42 Найти цитируемый пост)
это и есть вопрос как бэ)) как можно заменить??

ну так выложи результат своих трудов.

Автор: ARTIDESh 10.4.2011, 21:58
Код

#include <stdio.h>

int main(){
        int i;
        char str[200];
  
    printf("vvedite stroky:\n");
    gets(str);
      for(i=0;str[i]!='\0';i++)
          if(str[i]>='1' || str[i]<='9') {
              switch(str[i]) {
          case '1':
             puts("I");
             break;
          case '2':
             puts("II");
             break;
          case '3':
              puts("III");
             break;
          case '4':
              puts("IV");
             break;
                       case '5':
              puts("V");
             break;
                       case '6':
             puts("VI");
             break;
                       case '7':
              puts("VII");
             break;
                       case '8':
             puts("IIX");
             break;
                       case '9':
              puts("IX");
             break;
            default:;
          }};
puts(str);
}


но вообще накосячил тут..надо чтоб прямо в тексте заменлось..а у меня отдельно как то))) и чет не так

Автор: bsa 10.4.2011, 22:45
ARTIDESh, убери вообще if из 10-й строки, тем более, что условие неверное (под него подпадают все символы), а в default добавь putchar(str[i]);

Автор: Dov 10.4.2011, 23:03
Цитата(ARTIDESh @  10.4.2011,  21:58 Найти цитируемый пост)
но вообще накосячил тут..надо чтоб прямо в тексте заменлось..а у меня отдельно как то))) и чет не так

Подправил...
Код
int main()
{
    char str[200];
    int i;
    
    printf("vvedite stroky:\n");
    gets(str);
    for(i = 0; str[i] != '\0'; i++)
    {
            switch(str[i])
            {
            case '1':
                printf("I");
                break;
            case '2':
                printf("II");
                break;
            case '3':
                printf("III");
                break;
            case '4':
                printf("IV");
                break;
            case '5':
                printf("V");
                break;
            case '6':
                printf("VI");
                break;
            case '7':
                printf("VII");
                break;
            case '8':
                printf("VIII");
                break;
            case '9':
                printf("IX");
                break;
            default:
                putchar(str[i]);
            }
    }
    puts("");

    return 0;
}


Автор: ARTIDESh 11.4.2011, 01:35
Спасибо))) работает))

Автор: миг 11.4.2011, 04:43
работает, но только до  девяти

Автор: Dov 11.4.2011, 08:58
Цитата(миг @  11.4.2011,  04:43 Найти цитируемый пост)
работает, но только до  девяти

А до скольки надо?
http://forum.vingrad.ru/forum/topic-115333/anchor-entry880713/0.html

Автор: ARTIDESh 11.4.2011, 10:06
до 9 собственно и надо))

Автор: Gigimonik 11.4.2011, 15:42
а как сделать так же..но чтоб можно было считать из файла(fopen) и сохранить результат того что получилось(putchar(str[i]) в новый файл ("w") ????

Автор: bsa 11.4.2011, 18:07
Gigimonik, прочитать документацию на fputc

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)