Loading:


C++ Zamiana liczb arabskich z przedziału od 0 do 3999 na liczby rzymskie

Program zamienia liczby arabskie z przedziału od 0 do 3999 na liczby rzymskie


Treść zadania:

Napisać program zamieniający liczby arabskie z przedziału od 0 do 3999 na liczby rzymskie. Użyć zainicjowanej tablicy struktur struct RZYM {char *s; int w; };, gdzie s wskazuje na tekst (np. "CM"), a w zawiera wartość z tym tekstem związaną (np. 900). Do konwersji napisać funkcję, która otrzyma w parametrach liczbę, a w wyniku zwróci wskazanie na tekst postaci rzymskiej. Zapętlić program tak długo, jak długo podawana do konwersji liczba mieści się w zadanym przedziale.



Napisz Artyku³

Listing


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

struct Rzym_t
{
  char *s;
  int w;
};

static const Rzym_t Rzym[]=
{
  {"M",  1000},
  {"CM",  900},
  {"D",   500},
  {"CD",  400},
  {"C",   100},
  {"XC",   90},
  {"L",    50},
  {"XL",   40},
  {"X",    10},
  {"IX",    9},
  {"V",     5},
  {"IV",    4},
  {"I",     1},
};

const char *dectorom( int liczba )
{
  int i;
  static char Rliczba[20];
 
  Rliczba[0] = '\0';
 
  for (i=0; liczba && i<sizeof(Rzym)/sizeof(Rzym[0]); i++)
  {
    while ( Rzym[i].w <= liczba )
    {
      strcat( Rliczba, Rzym[i].s );
      liczba -= Rzym[i].w;
    }
  }
  return Rliczba;
}

int main()
{
  int liczba;
 
  printf("\n");
  printf("1539\n");
  printf("grupa C\n\n");
  printf("\tProgram przeksztalca liczby arabskie na rzymskie.\n\n");
 
 
  for(;;)
  {
    printf("Podaj liczbe arabska: ");
   
        scanf("%d", &liczba);
   
        if(liczba<1 || liczba>3999)
                return 0;
   
        printf("\nLiczba Rzymska: %s\n\n", dectorom(liczba));
  }
  scanf("%d", &liczba);
}




Dodano przez: igor
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2024 v.1.5 | design: diviXdesign & rainbowcolors