Votre question

[résolu] pb langage C

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
Anonyme
8 Janvier 2008 10:43:30

Bonjour,
dans mon programme j'ai des petites erreurs que je ne comprend pas lors de la compilation avec CodeWarrior

for (j=0;j<=10;j++)
if (transition_entree==algo.E.TR[j]);

etat=algo.E.TR[j].etat_suivant;
printf(algo.E.TR[j].sortie);
else
printf("Erreur de transition \n");

pour mon if il me dit opérande illégal
le else il dit erreur de syntaxe
; escompté dans le printf

Pourtant j'ai l'impression d'avoir bien fait ma boucle
Donc ca pourrait venir des déclarations

typedef struct {
char sortie[25];
char entree;
int etat_suivant;
}transition;

typedef struct {
int nb_entree_utilisee;
transition TR[10];
}transition_etat;

typedef struct {
int nb_etats;
transition_etat E[16];
}automate;

FILE *fichier;
char nom_fic[20];

int i,j,etat;
char chemin[50];
char tab[10];
char nb_entree;
char transition_entree;
automate algo;

Si vous voyez d'ou peuvent venir ces erreurs, merci de m'aider

Djipss

Autres pages sur : resolu langage

8 Janvier 2008 11:26:42

salut,
- les {} sont manquantes
- un if se terminant par ; ne sert à rien
- le printf prend un format en premier argument
- tu compares un char avec une structure dans le if
j'en oublie peut etre ;) 
Anonyme
8 Janvier 2008 12:55:09

Citation :
le printf prend un format en premier argument

je n'en ai pas besoin ici (je n'écrit pas une de mes variables)
Citation :
tu compares un char avec une structure dans le if

si on ne peut pas comparer les 2, comment peut-on faire dans ce cas?

variable=algo.E.TR[j];
if (transition_entree==variable);

comme ca c'est mieux?
Contenus similaires
8 Janvier 2008 14:14:13

Anonyme a dit :
Citation :
le printf prend un format en premier argument

je n'en ai pas besoin ici (je n'écrit pas une de mes variables)

ben si:
  1. printf(algo.E[i].TR[j].sortie);

mais effectivement, tu peux quand même t'en passer, je l'indiquais juste au cas où la variable ne serait pas une chaine bien comme il faut.
Anonyme a dit :

Citation :
tu compares un char avec une structure dans le if

si on ne peut pas comparer les 2, comment peut-on faire dans ce cas?

variable=algo.E.TR[j];
if (transition_entree==variable);

comme ca c'est mieux?

je pense que tu ne comprends pas trop ce que tu fais:
TR est de type transition:
  1. typedef struct {
  2. char sortie[25];
  3. char entree;
  4. int etat_suivant;
  5. }transition;

transition_entree est de type char:
  1. char transition_entree;

tu t'attends à ce qu'il te sorte quoi :??: 
juste de tete, tu arrives à comparer une structure avec un char et dire si c'est une égalité?
Anonyme
8 Janvier 2008 14:24:15

Merci de ton aide :) 
Je vais rebosser les structures (j'ai du boulot...)
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS