maniolar
Messages postés7Date d'inscriptionmercredi 7 septembre 2005StatutMembreDernière intervention10 mai 2006
-
1 avril 2006 à 17:19
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 2009
-
2 avril 2006 à 15:02
Bonjour à tous, celafait deux jours que je tente
deseperemment de trouver un moyen de sortir de mon prog correctement mais je n'y
arrive pas!!
j'ai l'impression d'avoir tout essayer........... Help!!
attention j'envoie la sauce
int main(void)
{
char *er = "er";
char *ir = "ir";
char *re = "re";
char input[200];
char output[200];
const char **ptrconjugaison;
int choix;
char *ptr;
char again = 0;
int i=0,j=0;
while(again!='n' && again!='N')
{
printf("\nChoisissez un verbe a conjuguer ('n' pour quitter):" );
fflush
(stdout);/* Pour afficher le message tout de suite
*/
lire(input, sizeof input);
if(!viregulier(input))
{
ptr = &input[strlen(input)-2];
if(strcmp(ptr,er)==0){
ptrconjugaison = prem_conjugaison;
printf("\n Verbe %s du Premier Groupe, Radical
: %s\n",input,ptr);
}
else if(strcmp(ptr,ir)==0){
ptrconjugaison = deux_conjugaison;
printf("\n Verbe %s du Deuxieme Groupe, Radical
: %s\n",input,ptr);}
else if(strcmp(ptr,re)==0){
ptrconjugaison = trois_conjugaison;
printf("\n Verbe %s du Troisieme Groupe,
Radical : %s\n",input,ptr);
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 1 avril 2006 à 21:04
Bon si ça ne fonctionne plus après 3 else if, c'est surement une erreure toute simple mais je la vois pas du tout (dsl mais j'ai pas le temps d'analyser ton code pour l'intant). Bon petite remarque. Ya t-il un break quelque part dans ta boucle? Car sinon c'est sûre que tu ne pourra jamais quitter ton programme.
___________________________________________
Les plus grands esprits trouvent toujours une solution
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 1 avril 2006 à 21:07
Je vois que tu a, dans le premier post, mit un while dans un while. Tu utilise break mais break ne va que quitter la seconde boucle et tu te retrouvera encore dans la boucle principal. Donc si tu veut tout quitter à partir de la seconde boucle, remplace ton break par un return 0 qui aura comme effet de terminer la fonction main.
___________________________________________
Les plus grands esprits trouvent toujours une solution
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 1 avril 2006 à 21:09
trop de boucle tue la boucle, il vaut mieux travailler avec des conditions autant que possible car les boucles sont souvent gourmandes en resources, enfin c'est juste un avis...
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 1 avril 2006 à 21:09
trop de boucle tue la boucle, il vaut mieux travailler avec des conditions autant que possible car les boucles sont souvent gourmandes en resources, enfin c'est juste un avis...
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 1 avril 2006 à 21:14
Ben pas tellement car la seconde boucle est dans la première donc quand elle sera executer, la boucle maitresse ne continura pas à moin de faire du multithread. En plus, en utilisant scanf, il se trouve à stopper les opérations donc consomation processeur quasi nul.
___________________________________________
Les plus grands esprits trouvent toujours une solution
maniolar
Messages postés7Date d'inscriptionmercredi 7 septembre 2005StatutMembreDernière intervention10 mai 2006 1 avril 2006 à 21:15
je vais essayer de mettre un "break" et un "return 0" à la fin du prog.
pour les "else if" je pense que c'est dû au fait que je fait un peu du "jonglage" avec plusieurs pointeurs et mon "input" mais je ne vois pas comment faire autrement, en tout cas merci
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 1 avril 2006 à 21:16
bien sur pas ds le cas présent , encore que j'en sait rien !!, mais bon, vu la question, ca doit débuter en c++, donc c plus une facon de penser qu'une directive pour ce code précis
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 1 avril 2006 à 23:15
Tu ne veut que tester un seul caratère? Et bien normalement si ton caractère se situe dans input tu pourrais faire switch(input[0]). J'ai jamais essayer cependant.
___________________________________________
Les plus grands esprits trouvent toujours une solution