Numeração romana

Nakatsuke

Membro
Olá pessoal eu so novo aqui no forúm, e presiso de auda para fazer um programa de converção de numeros inteiros para nº romanos... e eu comecei com o "switch()" e tem q ir ate 3999... se me poderem dar umas dicas de como começar ou outra maneira mais facil postem aqui por favor
 
Essa tua abordagem é a da força bruta :) e não é de todo conveniente ires por aí.

Não sei qual a linguagem em que estás a programar, mas dou-te um ponto de partida para estudares o algoritmo que podes implementar:
http://www.blackwasp.co.uk/NumberToRoman.aspx

Eu na escola esto a trabalhar com o Borland C, mas em casa como tenho o vista e ainda nao consegui mudar a linguagem do teclado o meu stor disse-me para sacar o Dev C++, e sao completamente diferentes. Só na parte onde pomos "main void (main)" é diferente é so por "main (void)". Obrigado para a ajudar, to a ver que vo aprender muito aqui neste forum :P
 
Só na parte onde pomos "main void (main)" é diferente é so por "main (void)". Obrigado para a ajudar, to a ver que vo aprender muito aqui neste forum :P

Não será "void main(void)". :P

De qualquer forma é sempre boa prática por int main(), com void ou sem void lá dentro, ou int main( int argc, char **argv) caso seja para receber argumentos.

EDIT:
De qualquer forma é sempre boa prática por int main(void) ou int main( int argc, char **argv) caso seja para receber argumentos.
 
Última edição:
Não será "void main(void)". :P

De qualquer forma é sempre boa prática por int main(), com void ou sem void lá dentro, ou int main( int argc, char **argv) caso seja para receber argumentos.

hmm... Obrigado ainda não tinha pensado bem nessa possibilidade.... Porque se eu poser void main (void), no dev C dá-me um erro... no programa
 
Não será "void main(void)". :P

De qualquer forma é sempre boa prática por int main(), com void ou sem void lá dentro, ou int main( int argc, char **argv) caso seja para receber argumentos.

Segundo as normas C99, é com. Com significa que não recebe nenhum argumento. Sem significa que recebe um número variável de argumentos.
 
Então int main() é igual a int main( int argc, char **argv) ?
mas continua a dar-me erro... vejam só

Código:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

[COLOR=Red]int void ();[/COLOR]

{
                  char nc;
                  
                  printf("Insira o nº que deseja Converter");
                  scanf("%c",& nc);
                  
                  switch()
                  {
                          case1: printf("I");break;
                          case2: printf("II");break;
                          case3: printf("III");break;
                          case4: printf("IV");break;
                          case5: printf("V");break;
                          case6: printf("VI");break;
                          case7: printf("VII");break;
                          case8: printf("VIII");break;
                          case9: printf("IX");break;
                  }
}
 
Última edição pelo moderador:
ja encontrei um dos erros, era a virgula no no fim, mas afora dame erro nisto " { ", não sei porque dá erro....
 
Última edição:
Se calhar convinha estudares o básico de C. :wvsore:

Tu estás a por int void (main); e é int main (void);

Depois de onde é que vêm o i no argumento switch, deveria lá estar o nc.
 
Escapou-me o pormenor da vírgula. Assim já deveria funcionar, mete aí o código como tens agora.
Código:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

void main (void)

{
                  char nc;
                  
                  printf("Insira o nº que deseja Converter");
                  scanf("%c",& nc);
                  
                  switch(i)
                  {
                          case1: printf("I");break;
                          case2: printf("II");break;
                          case3: printf("III");break;
                          case4: printf("IV");break;
                          case5: printf("V");break;
                          case6: printf("VI");break;
                          case7: printf("VII");break;
                          case8: printf("VIII");break;
                          case9: printf("IX");break;
                  }
}
aqui ta o meu pseudo-código
 
Última edição pelo moderador:
Código:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

[COLOR=Red][B]int[/B][/COLOR] main (void)
{
   char nc;
                  
   printf("Insira o nº que deseja Converter");
   scanf("%c",& nc);
                  
   switch([COLOR=Red][B]nc[/B][/COLOR])
   {
       case [B][COLOR=Red]'1'[/COLOR][/B]: printf("I");break;
       case [B][COLOR=Red]'2'[/COLOR][/B]: printf("II");break;
       case [B][COLOR=Red]'3'[/COLOR][/B]: printf("III");break;
       case [B][COLOR=Red]'4'[/COLOR][/B]: printf("IV");break;
       case [B][COLOR=Red]'5'[/COLOR][/B]: printf("V");break;
       case [B][COLOR=Red]'6'[/COLOR][/B]: printf("VI");break;
       case [B][COLOR=Red]'7'[/COLOR][/B]: printf("VII");break;
       case [B][COLOR=Red]'8'[/COLOR][/B]: printf("VIII");break;
       case [B][COLOR=Red]'9'[/COLOR][/B]: printf("IX");break;
   }
}
Assim funciona, repara bem nas correcções.

Ah, isso não é pseudo-código, é mesmo código, ou então o seu propósito não era compilar.
 
Código:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

[COLOR=Red][B]int[/B][/COLOR] main (void)
{
   char nc;
                  
   printf("Insira o nº que deseja Converter");
   scanf("%c",& nc);
                  
   switch([COLOR=Red][B]nc[/B][/COLOR])
   {
       case [B][COLOR=Red]'1'[/COLOR][/B]: printf("I");break;
       case [B][COLOR=Red]'2'[/COLOR][/B]: printf("II");break;
       case [B][COLOR=Red]'3'[/COLOR][/B]: printf("III");break;
       case [B][COLOR=Red]'4'[/COLOR][/B]: printf("IV");break;
       case [B][COLOR=Red]'5'[/COLOR][/B]: printf("V");break;
       case [B][COLOR=Red]'6'[/COLOR][/B]: printf("VI");break;
       case [B][COLOR=Red]'7'[/COLOR][/B]: printf("VII");break;
       case [B][COLOR=Red]'8'[/COLOR][/B]: printf("VIII");break;
       case [B][COLOR=Red]'9'[/COLOR][/B]: printf("IX");break;
   }
}
Assim funciona, repara bem nas correcções.

Ah, isso não é pseudo-código, é mesmo código, ou então o seu propósito não era compilar.
Hmm... pois, porque eu pus o nc como char não é verdade??
 
Back
Topo