1. #1
    Futur Membre du Club
    Femme Profil pro
    étudiant
    Inscrit en
    février 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 18
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : février 2018
    Messages : 7
    Points : 6
    Points
    6

    Par défaut Somme, produit, comparaison de deux nombres complexes et le module d'un seul nombre complexe

    Salut à tous,
    j'ai un petit problème dans mon programme : dans le module du nombre n2 elle m'affiche deux nombre de plus après mon résultat après exaction.
    Aidez-moi pour voir l'erreur.

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    #include<stdio.h>
    #include<math.h>
     
    typedef struct
    {
        int  x;
        int  y;
    }comp;
     
    comp Somme(comp c1 , comp c2)
    {
        comp s;
        s.x=c1.x+c2.x;
        s.y=c1.y+c2.y;
        return s;
    }
     
    comp Produit(comp c1 , comp c2)
    {
        comp p;
        p.x=c1.x*c2.x-c1.y*c2.y;
        p.y=c1.x*c2.x+c1.y*c2.y;
        return p;
    }
    void Compar(comp c1 , comp c2)
    {
        if((c1.x>c2.x)&&(c1.y>c2.y))
        {
            printf("c1 est plus grands que c2");
        }
        else
        {
            printf("c2 est plus grand que c1");
        }
    }
     
    int  Module(comp c)
    {
       int m;
        m=sqrt(c.x*c.x+c.y*c.y);
        return m;
    }
    main()
    {
        comp n1,n2,S,P;
        int M1;
        int M2;
     
        printf("donner le x de  n1 :");
        scanf("%d",&n1.x);
        printf("\ndonner le y de  n1 :");
        scanf("%d",&n1.y);
     
        printf("\ndonner le x de  n2 :");
        scanf("%d",&n2.x);
        printf("\ndonner le y de  n2 :");
        scanf("%d",&n2.y);
     
     
        S = Somme( n1 , n2 ) ;
        P = Produit( n1  ,n2 ) ;
        M1 = Module( n1) ;
        M2 = Module( n2 ) ;
        Compar( n1 , n2 ) ;
     
        printf("\n S =  %d",S);
        printf("\n P =  %d",P);
        printf("\n M1 = %d",M1);
        printf("\n M2 = %d",M2);
        printf("%d%d",n1,n2);
     
        return 0;
    }

  2. #2
    Membre éclairé Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2011
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2011
    Messages : 333
    Points : 690
    Points
    690

    Par défaut

    Hello,

    S et P sont des structures, tu dois en afficher chaque membre: printf("%d %d\n",S.x,S.y) par exemple.

    Quant a Module, sqrt() renvoie un double, mais tu as déclaré int Module() : la valeur renvoyée n'est donc que la partie entière de sqrt() (mais c'est peut-être ce que tu souhaites)

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    6 163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 6 163
    Points : 17 152
    Points
    17 152
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par fashi Voir le message
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void Compar(comp c1 , comp c2)
    {
        if((c1.x>c2.x)&&(c1.y>c2.y))
        {
            printf("c1 est plus grands que c2");
        }
        else
        {
            printf("c2 est plus grand que c1");
        }
    }
    Bonjour

    Moi je suis dubitatif sur ta fonction de comparaison. Bon déjà généralement une fonction de comparaison n'affiche rien. Elle renvoie juste une valeur signifiant "plus petit" ou "plus grand" (et généralement on rajoute une 3° valeur signifiant "égal") et c'est l'appelant qui gère ce retour et soit affiche, soit fait autre chose. C'est bien plus souple.
    Mais bon, c'est un détail. Le vrai truc c'est qu'avec 2 complexes c1 et c2, on a 4 possibilités équiprobables
    • c1.x < c2.x et c1.y < c2.y
    • c1.x < c2.x et c1.y > c2.y
    • c1.x > c2.x et c1.y < c2.y
    • c1.x > c2.x et c1.y > c2.y

    Et toi, dans les 3 premiers cas tu considères que c1 est plus petit que c2 et seul le 4° te fait admettre que c1 est plus grand que c2. C'est un peu inéquitable non ???

    D'ailleurs j'arrive mal à imaginer ce que signifie "comparer deux complexes". Comparer deux nombres classiques c'est facile. comme ils n'ont qu'une dimension on les place sur une règle et on regarde lequel est "plus à droite" que l'autre. Mais comparer des nombres en 2 dimensions !?! Par exemple que dirais-tu avec 8+2i et 3-7i ? Lequel est plus grand que lequel pour toi ??? A la limite si je devais faire un choix je dirais que celui qui a le plus grand module est le plus grand des deux mais bon, je ne suis pas certain que cette définition soit mathématiquement valable...
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  4. #4
    Futur Membre du Club
    Femme Profil pro
    étudiant
    Inscrit en
    février 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 18
    Localisation : Algérie

    Informations professionnelles :
    Activité : étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : février 2018
    Messages : 7
    Points : 6
    Points
    6

    Par défaut

    Merci beaucoup de votre aide et de vos conseils ,je suis très reconnaissante à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comparaison entre deux nombres entier
    Par info.pascal dans le forum Débuter
    Réponses: 6
    Dernier message: 08/02/2013, 01h07
  2. comparaison entre deux nombres
    Par paul0chon dans le forum C
    Réponses: 1
    Dernier message: 05/03/2011, 00h52
  3. Réponses: 9
    Dernier message: 22/01/2011, 13h56
  4. comparaison de deux grand nombres
    Par simplyc dans le forum Débuter
    Réponses: 6
    Dernier message: 14/12/2010, 15h01
  5. Comparaison de deux nombres à virgule
    Par TangoZoulou dans le forum Syntaxe
    Réponses: 6
    Dernier message: 07/06/2009, 23h06

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