Atof.forum
bonjour g un bleme g ecris ce programme pour convertir une chaine de caracteres en tableau d'entiers il se compile correctement mais il ne s'execute pas est ce que vous pouvais m'aider merci a tous voici mon prog
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
float verif(char*ch)
{int i,r,;float w;char rh[10];
r=0;
for(i=r;ch[i]!='\0';i++)
while((ch[i]!='<')&&(ch[i]!='>')&&(ch[i]!='!')&&(ch[i]!='=')&&(ch[i]!='&')&&(ch[i]!='|'))
{
strcpy(rh,ch);
w=atof(rh);
scanf("%f",&w)
return(w);
r=i+1;
}
main()
{ int i,r;
char ch[100];float t[30];
puts("donnez votre expression logique");
gets(ch);
for(i=0;ch[i]!='\0';i++)
t[i]=verif(ch);
for(i=0;i<30;i++)
printf("la valeur est","%f",t[i]);
scanf("%f",&t[i]);
}
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
float verif(char*ch)
{int i,r,;float w;char rh[10];
r=0;
for(i=r;ch[i]!='\0';i++)
while((ch[i]!='<')&&(ch[i]!='>')&&(ch[i]!='!')&&(ch[i]!='=')&&(ch[i]!='&')&&(ch[i]!='|'))
{
strcpy(rh,ch);
w=atof(rh);
scanf("%f",&w)
return(w);
r=i+1;
}
main()
{ int i,r;
char ch[100];float t[30];
puts("donnez votre expression logique");
gets(ch);
for(i=0;ch[i]!='\0';i++)
t[i]=verif(ch);
for(i=0;i<30;i++)
printf("la valeur est","%f",t[i]);
scanf("%f",&t[i]);
}
3 réponses
-
Voici les corrections a apporter pour que ca compile
#include <string.h> #include <stdlib.h> #include <stdio.h> float verif(char*ch) { // int i,r,; int i,r; float w; char rh[10]; r=0; for(i=r;ch[i]!='\0';i++){ while((ch[i]!='<') && (ch[i]!='>') && (ch[i]!='!') && (ch[i]!='=') && (ch[i]!='&') && (ch[i]!='|')) { strcpy(rh,ch); w=atof(rh); // scanf("%f",&w) // return(w); // ton programme s'arretera a la premiere iteration ! c'est plutot : if (scanf("%f",&w)==1) return(w); r=i+1; } } //il manque un return ici ! return 0; }// } manquante // main() //pas de type de retour pour la fonction main ! // il faut au moins mettre void main(), et int main() pour être standard int main(){ // int i,r; //r pas utilisé int i; char ch[100];float t[30]; puts("donnez votre expression logique"); gets(ch); for(i=0;ch[i]!='\0';i++) t[i]=verif(ch); for(i=0;i<30;i++){ //printf("la valeur est","%f",t[i]); printf("la valeur est %f",t[i]); } scanf("%f",&t[i]); return 0;//pour etre standard ! }
Mais en lisant ton code à mon avis ça ne fera pas ce que tu veux, car à mon avis le code actuel n'a pas de sens. Qu'est sensé faire la fonction verif ? Que veux-tu que le programme fasse ?
Bonne chance -
tout d'abord merci de m'avoir repondue le but du programme c de covertir une chaine de caractere en un tableau d'entier ex 12<5&&3<2
et de retourner le resultas de la fonction logique pour cet ex je doi retourner 0 mais avant ça je doit sanvgarder le 12 et le 5 et le 3 et le 2 dans un tableau d'entier et pr cela je dois d'abord les convertir en entier g essayer comme ça pr convertir mais ça n'as rien donne
merci de m'aider
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
float verif(char*ch)
{int i,r,;float w;char rh[10];
r=0;
for(i=r;ch[i]!='\0';i++)
while((ch[i]!='<')&&(ch[i]!='>')&&(ch[i]!='!')&&(ch[i]!='=')&&(ch[i]!='&')&&(ch[i]!='|'))
{
strcpy(rh,ch);
w=atof(rh);
scanf("%f",&w);
return(w);
r=i+1;
}}
int main(int argc, char * argv[])
{ int n,i,r;float t[30];
char ch[100];
puts("donnez votre expression logique");
gets(ch);
for(i=0;ch[i]!='\0';i++)
{t[r]=verif(ch);
printf("la valeur est : %f",t[r]);
scanf("%f",&t[r]);
getch();}
return 0 ;
}
nvertir mais ça n'as rien donne -
Ok dans ce cas c'est presque que la même chose qu'ici :
https://forums.commentcamarche.net/forum/affich-2168877-mini-probleme-programmation-en-c
Il faut juste changer les séparateurs.
Bonne chance