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
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
#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
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
https://forums.commentcamarche.net/forum/affich-2168877-mini-probleme-programmation-en-c
Il faut juste changer les séparateurs.
Bonne chance