erreur d’affichage
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

erreur d’affichage



  1. #1
    invite73566079

    erreur d’affichage


    ------

    Bonjour,

    voila mon exercice :comment définit le type de polynômes avec des listes chaînées des monômes non nuls .
    voila mon réponse :
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    typedef struct 
    {
            int c ;
            int puiss;
            }Mono;
    typedef struct listM{
                    Mono* m;
                    struct listM* svt;
                    }listM;
    typedef struct {
    listM* coef;
    int deg;
    }poly;
                     
    poly makerandom(int n)
    {
    poly p;
    p.coef=NULL;
    listM* l;
    int k;
    for(int i=0;i<n;i++)
    {
    k=rand()%10;
    if(k!=0)
    {
    l=(listM*)malloc(sizeof(listM));
    l->m->c=k;
    l->m->puiss=i;
    l->svt=p.coef;
    p.coef=l;
    }}
    p.deg=n;
    return(p);
    }
                                          
    void printpoly(poly p)
    {
    while(p.coef)
    {
    printf("+(%d*x^%d)",p.coef->m->c,p.coef->m->puiss);
    p.coef=p.coef->svt;
    }
    }
    int nbnozero(poly p)
    {
    int k=0;
    listM* l=p.coef;
    while(l)
    {
    if(l->m->c)
    {k=k+1;}
    l=l->svt;
    }
    return(k);
    }
                                                              
    int evalpoly(poly p,int x)
    {
    int s=0;
    int prod=1;
    listM* l=p.coef;
    while(l)
    {
    prod=prod*x;
    s=s+(l->m->c)*prod;
    l=l->svt;
    }
    return(s);
    }
                                                                                  
    poly addpoly(poly p1,poly p2)
    {
    poly p3;
    listM* A;
    listM* B;
    p3.coef=NULL;
                                                                                 
    if(p1.deg>p2.deg)
    {p3.deg=p1.deg;}
    p3.coef=(listM*)malloc((p1.deg+1)*sizeof(listM));
    for(int i=0;i<p3.deg;i++)
    {
    A=p1.coef;
    B=p2.coef;
    while(A)
    {
    if(A->m->puiss==i)
    {p3.coef+=A->m->c;}
    A=A->svt;
    }
    if(p1.deg<p2.deg)
    { p3.deg=p2.deg;}
                                                                          
    while(B)
    {if(B->m->puiss==i)
    {p3.coef+=B->m->c;}
    B=B->svt;
    }
    }
    return(p3);
    }
                                                                                           
                                                                                                  
    main()
    {
       poly P1,P2,P3;
        int S,X;
        P1=makerandom(5);  
        P2=makerandom(4);
        printf("*** Polynome 1 *** \n\n");
       printpoly(P1);
        printf("\n\n*** Polynome 2 *** \n\n");
       printpoly(P2);
        S=nbnozero(P1);
        printf("\n\n*** Le Nombre Des Coef Non Nuls Du Polynome 1 *** \n\n");
        printf("%d",S);
        X=evalpoly(P1,2);
        printf("\n\n*** L'evaluation Du Polynome 1 *** \n\n");
        printf("%d",X);
        P3=addpoly(P1,P2);
        printf("\n\n*** Polynome 3 : La Somme Du Polynome 1 et Du Polynome 2 *** \n\n");
         printpoly(P3);
        getch();
    }
    le problème :quand je compile, le programme n'affiche rien ; Merci d’avance .

    -----

  2. #2
    Jack
    Modérateur

    Re : erreur d’affichage

    c'est bien d'voir mis les balises code, reste à indenter correctement le programme pour le rendre lisible.

    le problème :quand je compile, le programme n'affiche rien ; Merci d’avance .
    Ce n'est pas très clair: tu parles d'affichage à la compilation ou à l'exécution.

    A+
    Dernière modification par JPL ; 12/12/2012 à 13h30. Motif: Titre

  3. #3
    Chanur

    Re : erreur d’affichage

    Bonjour,
    Je ne vois pas comment tu peux ne pas avoir de message d'erreur : dans la fonction makerandom, tu écris l->m->c=k" alors que le pointeur l->m n'a pas été initialisé.
    Normalement ton programme doit planter avec un message d'erreur du système.

    Tu le lances comment ?
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

Discussions similaires

  1. Que fait l’ordinateur lors d’envoi d’arguments à une fonction ?
    Par AmigaOS dans le forum Programmation et langages, Algorithmique
    Réponses: 58
    Dernier message: 19/09/2011, 09h49
  2. Réponses: 46
    Dernier message: 12/05/2010, 08h46
  3. Dans quel pays et comment s’appelle cette chute d’eau ?
    Par invite68a2566d dans le forum Identification des espèces animales ou végétales
    Réponses: 1
    Dernier message: 09/05/2010, 11h31
  4. Bienfaits ou méfaits (santé et environnement) d’un adoucisseur d’eau à sel ?
    Par invite9a068b0e dans le forum Santé et médecine générale
    Réponses: 7
    Dernier message: 14/06/2008, 00h46