IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

un problème de calcul?


Sujet :

C

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Par défaut un problème de calcul?
    bon jour tout le monde!

    j'ai un problème qui me dérange dans mon travail, c'est je n'arrive pas a avoir un bon résultat de la quantité "T". Donc je vous demande un aide pour ce truc

    mon code est :
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    main()
    {
    int *P,i,N=6;/* N est un entier pair*/
    float R,T;
    R=0.23;
    P=(int *)malloc(N/2*sizeof(int ));
    if((N%2)==0){
    	 for(i=1;i<=N/2;i++){
                             P[i]=2*i;
                         T=(N+P[i]-1)/(N+P[i])*((N-P[i]+2)/(N-P[i]+1))*R;
                         R=T;
                         }
    }
    printf("T=%lf\n",T);
     
    }
    résultats;
    [oufkir@localhost Desktop]$ gcc pointvirgu.c
    [oufkir@localhost Desktop]$ ./a.out
    T=0.000000
    la question c'est comment avoir de bon T?

    merci

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Bonjour,

    Voici quelques remarques :

    C'est pas la bonne signature pour la fonction main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int main(void);
    int main(int argc, char **argv);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    P=(int *)malloc(N/2*sizeof(int ));
    - Pas de cast et il faut un test après.

    [EDIT]En plus, tu n'alloues pas assez d'éléments, dans ta boucle tu vas jusqu'à N/2... du coup faudrait allouer (N/2 + 1) éléments
    [/EDIT]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	 for(i=1;i<=N/2;i++){
                             P[i]=2*i;
    Attention les tableaux commencent avec l'indice 0... Pourquoi s'en priver ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("T=%lf\n",T);
    %f serait mieux.

    - il manque le free à la fin et un return

    [EDIT]
    Ton calcul est juste parce qu'il est exprimé en entier. Il faut passer le passer en flottant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T = (N + P[i] - 1.0) / (N + P[i]) * ((N - P[i] + 2.0) / (N - P[i] + 1.0)) * R;
    [/EDIT]

    Jc

Discussions similaires

  1. Problème de calcule en SQL !
    Par FilipeVV dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/09/2005, 11h45
  2. Problème de calcul matricielle
    Par Clad3 dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 29/06/2005, 21h45
  3. problème de calcul des normales par sommet
    Par captainSeb dans le forum OpenGL
    Réponses: 2
    Dernier message: 21/01/2005, 13h42
  4. [Calendar]Problème de calcul de date
    Par valerie90 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 08/12/2004, 12h13
  5. Problème de calcul unix_timestamp
    Par petit_stagiaire dans le forum Administration
    Réponses: 2
    Dernier message: 28/04/2004, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo