Programmation en c

Fermé
jojo - 5 févr. 2010 à 22:51
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 8 févr. 2010 à 18:22
Bonjour,
Voici mon problème. J'ai un programme qui calcule des valeurs dans une boucle pour qui va de i=1 à i=1000, ça j'arrive à le faire.
Mais ce programme doit afficher la valeur seulement toutes les dix valeurs, et je ne sais pas comment faire.
Je ne sais pas si c'est claire.
Quelqu'un pourrait-il m'aidez svp?
A voir également:

3 réponses

green day Messages postés 26371 Date d'inscription vendredi 30 septembre 2005 Statut Modérateur, Contributeur sécurité Dernière intervention 27 décembre 2019 2 162
5 févr. 2010 à 22:57
Salut,

Poste ton code !

@+
0
DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014 19
5 févr. 2010 à 23:01
j'ai pu faire ceci: un affichage a chaque 10 ( variable X)
int J = 0;
int X= 10;
for(int i =0;i<1000;i++)
{
if(( i - J) >= 0)
{
J += X;
printf("valeur : %d\n", i);
}

}
Change la valeur de la variable X, pour détérminé la porté de l'affichage ^^
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
5 févr. 2010 à 23:15
Que c'est compliqué comme version ^^ sachant qu'on peut changer le pas dans le for :D.
Sinon, on peut utiliser le modulo pour plus de clarté.
0
DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014 19 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
5 févr. 2010 à 23:18
Ouéé, possible ^_^
Ben, le resultat est le meme, ici, c'est un affichage a 10 pas, et labà c'est un Shutdown. ;D
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841 > DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014
5 févr. 2010 à 23:22
Certes.
J'aimerais pas corriger tes algorithmes ;-))).
0
DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014 19 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
5 févr. 2010 à 23:25
^^ sinon:
int X= 10;
for(int i =0;i<1000;i++)
{
if(( i%X) == 0)
{ printf("valeur : %d\n", i); }
}
en fin de compte le nombre de ligne a diminué. :-°
et c'est une bonne chose ;-)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841 > DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014
5 févr. 2010 à 23:37
C'était la version que j'entendais par "modulo" ^^.
Sinon encore plus simple en C99 :
for(int i=0;i<1000;i+=10) 
   printf("valeur : %d\n", i);

Et voili :-)))
0
Voila mon code

#include<stdio.h>
#include<math.h>
#define vo 50
#define m 70
#define g 9.81
#define tf 10.0
#define n 1000
#define k 0.1
#define to 0.0
main()
{
int i,j;
float f,dt,t,v,vt,er;
t=to;
dt=(tf-to)/n;
v=vo;
for(i=0;i<=n;i++)
{
f=(-(m*g+k*v)/m);
v=v+dt*f;
t=t+dt;

printf("\nt=%f(s)\n",t);
printf("\nv=%f(m.s-1)\n",v);
vt=(vo+m*g/k)*exp(-k*t/m)-m*g/k;
er=fabs(vt-v)/vt*100;
printf("\ner=%f\n",er);
}
}

J'ai testé les différentes solutions proposés mais je n'est pas réussi;
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
8 févr. 2010 à 18:22
comme dit plus haut, tu conditionne ton affichage avec ca:
if(( i%10) == 0)

et ca affichera qu'une fois sur 10
le modulo, ca te donne le reste d'une division. Ici, ca te donne le reste de i / 10. En gros, dès que i est divisible par 10, alors ca te retourne true
0