Programmation en c

jojo -  
Nabla's Messages postés 18201 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?
Configuration: Linux
Firefox 3.5.3

3 réponses

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

    Poste ton code !

    @+
    0
  2. DrCrow Messages postés 416 Statut Membre 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
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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
      1. DrCrow Messages postés 416 Statut Membre 19 > fiddy Messages postés 441 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
      2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > DrCrow Messages postés 416 Statut Membre
         
        Certes.
        J'aimerais pas corriger tes algorithmes ;-))).
        0
      3. DrCrow Messages postés 416 Statut Membre 19 > fiddy Messages postés 441 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
      4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > DrCrow Messages postés 416 Statut Membre
         
        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
  3. 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
    1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
       
      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