1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#include <stdio.h>
int Parenthese(char *ligne)
{
int i;
/* -ed-
int lg= strlen(ligne)+1;
pourquoi ? De toutes facons, tu parcours la chaine,
alors autant utiliser la sentinelle standard pour en
determiner la fin...
*/
int parOuv=0;
int parFer=0;
for (i = 0; ligne[i] != 0; i++)
{
/* -ed-
if(ligne[0]=='(')
parOuv++;
if(ligne[0]==')')
parFer++;
pourquoi [0], j'aurais mis [i], non ?
D'autre part, un switch-case est plus efficace (un seul test)
*/
switch (ligne[i])
{
case '(':
parOuv++;
break;
case ')':
parFer++;
break;
}
}
/* -ed-
if(parOuv==parFer)
return 0;
return 1;
complique...
*/
return parOuv != parFer;
}
int main(void)
{
char *ligne="()";
printf ("Il %s le meme nombre de '(' et de ')'\n"
,((Parenthese(ligne))==0)
?"y a"
:"n'y a pas"
);
return 0;
} |
Partager