Comparer deux tableaux
Résolu
lunafreiya
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
lunafreiya Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
lunafreiya Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
le but est d'écrire une fonction qui attend en argument un tableau de char, dans lequel il y a un calcul, et vérifié si l'expression est conforme, c'est à dire qu'il n'y ai que des entiers, des parenthèses et certains opérateurs. Pour cela j'ai décidé de créer un autre tableau dans lequel je met les éléments acceptés, et ensuite le comparer au tableau dans lequel se trouve le calcul.
J'ai donc codé la fonction çi dessous, le problème étant que cette dernière retourne "Elément non conforme" peu importe l'expression. Auriez-vous une idée ? Merci d'avance.
le but est d'écrire une fonction qui attend en argument un tableau de char, dans lequel il y a un calcul, et vérifié si l'expression est conforme, c'est à dire qu'il n'y ai que des entiers, des parenthèses et certains opérateurs. Pour cela j'ai décidé de créer un autre tableau dans lequel je met les éléments acceptés, et ensuite le comparer au tableau dans lequel se trouve le calcul.
J'ai donc codé la fonction çi dessous, le problème étant que cette dernière retourne "Elément non conforme" peu importe l'expression. Auriez-vous une idée ? Merci d'avance.
char *verification(char *tab) { char verif[18]={'0','1','2','3','4','5','6','7','8','9','+','-','*','/','%','(',')',' '}; int i,j; for(i=0;i<15;i++) { j=0; { while (tab[i]!=verif[j]&&j!=18) { j++; if (j=18) { return "Expression non conforme"; } } } } return "Expression conforme"; }
A voir également:
- Comparer deux tableaux
- Fusionner deux tableaux excel - Guide
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
- Nombre de jours entre deux dates excel - Guide
- Tableaux croisés dynamiques - Guide
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, le test en ligne 12 va toujours retourner vrai.
je suggère de lire la documentation des opérateurs de comparaison.
je suggère de lire la documentation des opérateurs de comparaison.
lunafreiya
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
Mais j'utilise déjà des opérateurs de comparaison dans mon code
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
1 584
>
lunafreiya
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
déjà, mais cela ne suffit pas, de toute évidence.
Salut lunafreiya,
L'opérateur
La ligne 12 que yg_be t'a signalée réalise une affectation entre les parenthèses du if :
j=18 étant une affectation, le contenu de la parenthèse est évalué à 18, or, en C, toute valeur autre que 0 dans un test correspond à "vrai".
c'est pourquoi yg_be te dit "le test en ligne 12 va toujours retourner vrai"
Dal
L'opérateur
=est un opérateur d'affectation, l'opérateur d'égalité est
==et pas autre chose.
La ligne 12 que yg_be t'a signalée réalise une affectation entre les parenthèses du if :
if (j=18)
j=18 étant une affectation, le contenu de la parenthèse est évalué à 18, or, en C, toute valeur autre que 0 dans un test correspond à "vrai".
c'est pourquoi yg_be te dit "le test en ligne 12 va toujours retourner vrai"
Dal