Programmation en c

jojo -  
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   -
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?

3 réponses

green day Messages postés 26374 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   2 163
 
Salut,

Poste ton code !

@+
0
DrCrow Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   19
 
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   Statut Contributeur Dernière intervention   1 846
 
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   Statut Membre Dernière intervention   19 > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
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   Statut Contributeur Dernière intervention   1 846 > DrCrow Messages postés 387 Date d'inscription   Statut Membre Dernière intervention  
 
Certes.
J'aimerais pas corriger tes algorithmes ;-))).
0
DrCrow Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   19 > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
^^ 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   Statut Contributeur Dernière intervention   1 846 > DrCrow Messages postés 387 Date d'inscription   Statut Membre Dernière intervention  
 
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
jojo
 
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   Statut Contributeur Dernière intervention   3 193
 
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