Pour athanatos

cyberlulu Messages postés 62 Date d'inscription dimanche 10 novembre 2002 Statut Membre Dernière intervention 26 juin 2008 - 8 mai 2004 à 15:11
cyberlulu Messages postés 62 Date d'inscription dimanche 10 novembre 2002 Statut Membre Dernière intervention 26 juin 2008 - 9 mai 2004 à 12:28
voilà le code :

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

main()
{
char nb_romain[]="IVXLCDM";
int nb_arabe[7]={1,5,10,50,100,500,1000};
char nb_donne[15];
int nb_convertir[15];
int i,a,j,p,longueur,resultat;

/*Demande du nombre romain*/
printf("Donnez un nombre romain");
scanf("%s",&nb_donne);

/*Conversion des chiffres romains en chiffres arabes dans le tableau nb_convertir*/
for(i=0;i<=strlen(nb_donne)-1;i++)
{j=0;
while(nb_romain[j]!=nb_donne[i] && j<=7)
{j=j+1;
}
if(j>7) printf("Nb romain invalide");
else
{nb_convertir[i]=nb_arabe[j];}
}

/*calcul du nombre en chiffres arabes*/
longueur=strlen(nb_convertir);
resultat=nb_convertir[longueur-1];
for(i=longueur-1;i>=1;i=i-1)
{if(nb_convertir[i-1]<nb_convertir[i]) resultat=resultat-nb_convertir[i-1];
else
{resultat=resultat+nb_convertir[i-1];}
}
printf("%d",resultat);
scanf("%d",&p);
getch();
return 0;
}

et je sais pas ce qui cloche...
merci

2 réponses

HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
8 mai 2004 à 20:35
remplace scanf("%s",&nb_donne); par scanf("%s",nb_donne); vue que nb_donne est l'adresse de base de ton tableau et donc un pointeur et donc une adresse. Ou mieux, utilise gets(char*)

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
0
cyberlulu Messages postés 62 Date d'inscription dimanche 10 novembre 2002 Statut Membre Dernière intervention 26 juin 2008
9 mai 2004 à 12:28
scanf("%s",&nb_donne) et gets(nb_donne), c'est exactement la meme chose mais bon, de toute facon, meme en changeant, ca ne fonctionne pas... et je ne sais pas ou est le problème
@++
0
Rejoignez-nous