Bonjour,
je voulais savoir si l'incrémentation dans une boucle for ne se faisait que par un entier et si non, comment le faire par un réel ?
Merci de votre aide
Bonjour,
je voulais savoir si l'incrémentation dans une boucle for ne se faisait que par un entier et si non, comment le faire par un réel ?
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for (float f = 0.f; f < 1.f; f += 0.01f) { }
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Moi ma variable c'est X et elle varie de 0 a Xlim de 0,2 en 0,2 donc ça donne :
Ça marche pas !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for (X=0.f;X<Xlim.f;X+=0.2f) { }
Ca veut dire quoi "ça marche pas" ? Le code que tu donnes fait exactement ce que tu décris.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Ben genre si je fais ça
Ça ma sort pas X=0,X=0,2;etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { float Xlim=5; float X; for (X=0.f;X<Xlim.f;X+=0.2f) printf("X=%f",X); system("pause"); }
Ton problème vient de la ligne :
Remplace par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part for (X=0.f;X<Xlim.f;X+=0.2f)
Le lettre f ne se met que derrière un littéral pour lui donner un type autre que celui par défaut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part for (X=0.f;X<Xlim;X+=0.2f)
Avez-vous remarqué les progrès que fait l'ignorance?
[Tristan Bernard ]
Ouki ça marche merci ^^
Attention, a cause des problemes de representabilite dans les flottants (0.2 n'est pas representable exactement dans les formats de flottants habituels) tu peux ne pas avoir ce que tu veux.
n'a pas ce probleme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for (int i = 0; i < lim; ++i) { X = i * 0.2; ... }
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Mais alors si je fais ça
Pourquoi ça ne m'imprime pas les valeurs demandées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { float theta2,theta1,X; float Xlim=5; for (theta2=0;theta2<70;theta2=theta2+1) { for (theta1=0;theta1<90;theta1=theta1+1) { for (X=0.f;X<Xlim;X+=0.2f) { if (theta1==10&&theta2==50&&X==0.4) { printf("theta1=%d\n",theta1); printf("theta2=%d\n",theta2); printf("X=%d\n",X); } } } } system("pause"); }
Je m'arrache les cheveux ....
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Je suis allée voir dans la FAQ.
Le probleme c'est que dans mon cas je n'autorise aucune erreur epsilon sinon ma boucle ne fonctionne pas ...
Tu peux aussi utiliser la méthode de Jean-Marc (utiliser des compteurs entiers).
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Ça marche nickel avec les compteurs entiers
Merci beaucoup pour votre aide
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager