Additions soustraction dans une chaine de caracteres
ld09
Messages postés
9
Statut
Membre
-
nagaD.scar Messages postés 4500 Statut Membre -
nagaD.scar Messages postés 4500 Statut Membre -
Bonjour a tous, je dois rediger une fonction recursive qui recoit une chaine de caracteres composé de chiffres et de signe '+' ou '-' ,par exemple "0+1-4+9" et renvoie le resultat (ici 6)
et j'ai un probleme avec le signe ' -', si je rentre par exemple 2 chiffres negatifs a la suite
(par exemple "0-1-2",le resultat est 1 au lieu de -3).Dans l'exercice on est sur que la chaine de caractere commence par un chiffre.
Voici mon code ,merci d'avance.
et j'ai un probleme avec le signe ' -', si je rentre par exemple 2 chiffres negatifs a la suite
(par exemple "0-1-2",le resultat est 1 au lieu de -3).Dans l'exercice on est sur que la chaine de caractere commence par un chiffre.
Voici mon code ,merci d'avance.
#include <stdio.h>
#define MAX_LENGTH 100
int calc_sum_string(char *s)
{
if(*s=='\0'){
return 0;
}
else if(*s=='+'){
return calc_sum_string(s+1);
}
else if(*s=='-'){
return -1*calc_sum_string(s+1);
}
else
return *s-'0'+calc_sum_string(s+1);
}
int main()
{
char s[MAX_LENGTH];
scanf("%s", s);
printf("%d", calc_sum_string(s));
return 0;
}
A voir également:
- Additions soustraction dans une chaine de caracteres
- Caractères spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractères ascii - Guide
- Plus de chaine tv - Guide
- Caracteres speciaux - Guide
Aussi, tu ne sera qu en mesure de ne gérer que des chiffres ( 0-9 quoi). j ai fais ca:
#include <stdio.h> #define MAX_LENGTH 100 int calc_sum_string(char *s) { if(*s=='\0'){return 0;} return (*s=='+' || *s=='-' ? ( (*(s+1)-'0') * ( *s=='+' ? 1 : -1 ) + calc_sum_string(s+2)) : (*s)-'0' + calc_sum_string(s+1)) ; } int main() { char s[MAX_LENGTH]; scanf("%s", s); printf("%d", calc_sum_string(s)); return 0; }aussi, avec ce code tu peux commencer avec un signe ca ne changera rien
demandes moi pour les points pas clairs
naga