• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zamiana liczb z arabskiego na rzymski, jak dodać funkcję zamiany na odwrót?

0 głosów
48 wizyt
pytanie zadane 11 stycznia w C i C++ przez użytkownika futureprocessing Nowicjusz (160 punkty)
edycja 11 stycznia przez użytkownika futureprocessing
JEZYK C !
Zmienia mi z arabskiego na rzymski jak dodać funkcję żeby zamienić liczby rzymskie na arabskie? 


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct RZYM {
    unsigned int arab;
    char *rzym;
} rz[] = {
			{1000, "M"},
            {900,	"CM"},
            {500,	"D"},
            {400,   "CD"},
            {100,   "C"},
            {90,    "XC"},
            {50,    "L"},
            {40,    "XL"},
            {10,    "X"},
            {9,     "IX"},
            {5,     "V"},
            {4,     "IV"},
            {1,     "I"},

		};


char *wRzym(int n)
{
    char *rzymskie = (char*)malloc(10 * sizeof(char));
    rzymskie[0] = '\0'; /*o tutaj :) */
    int i = 0;

    while (n) {
        while (n < rz[i].arab)
            i++;
        while(n >= rz[i].arab) {
            strcat(rzymskie, rz[i].rzym);
            n -= rz[i].arab;
        }
    }
    return rzymskie;
}

int main()
{
   int liczba;
    char *wynik;

    printf("Wpisz liczbe w postaci arabskiej:\n");
    scanf("%i", &liczba);

    if(liczba < 0  || liczba > 3999) {
        printf("Liczba moze byc jedynie w zakresie od 1 do 3999.\n");
        return -1;
    }
    
    wynik = wRzym(liczba);
    puts(wynik);

    free(wynik);
    
    
    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 11 stycznia przez użytkownika shead VIP (117,010 punkty)

Podobne pytania

0 głosów
1 odpowiedź 51 wizyt
0 głosów
3 odpowiedzi 89 wizyt
pytanie zadane 30 grudnia 2015 w C i C++ przez użytkownika sympi Nowicjusz (240 punkty)
0 głosów
2 odpowiedzi 76 wizyt
...