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 :

structure liste chainée


Sujet :

C

  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 35
    Par défaut structure liste chainée
    bonsoir a tous le monde,
    Alors voila je cherche a définir une structure st qui a trois champs ,la partie entiere ,decimale,et l'exposant d'un nombre réeel x, pour faire sa ,j'ai crée deux fonction:
    la premier st pour la création de la liste "l'arret se feras des la rencontre d'un élément ayant un exposant nul",la deuxieme calcul pour la conversion des trois champs en un chiffre réel
    dans le main j'appel st ,j'affiche la llc ensuite j'appel calcul et je sauvegarde les résultat dans un vecteur V.
    LE PROBLEME:
    une erreur
    Compiling NEW.CPP:
    Error NEW.CPP 46: Constant expression required in function main()
    et le programme le voila :
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    typedef struct liste{int ent;
    					int dec;
    					int expo;
    					struct liste *svt;}liste;
    liste *st ()
    {
    	liste *tete=NULL,*pc=NULL,*q;
    	pc=(liste*)malloc(sizeof(liste));
    	printf("donner les valeurs (partie entiere,parite decimale,et lexposant\n");
    	scanf("%d %d %d",&pc->ent,&pc->dec,&pc->expo);
    	tete=pc;
    	if (pc->expo==0)
    		return (tete);
    	else
    		while (pc->expo!=0)									/*le reste des éléments*/
    			{  q=(liste*)malloc(sizeof(liste));
    				printf("donner les valeurs (partie entiere,parite decimale,et lexposant\n");
    				scanf("%d %d %d",&q->ent,&q->dec,&q->expo);
    				pc->svt=q;
    				pc=q;
    			}
    										  /*dernier élément pointe vers le NULL*/
    	pc->svt=NULL;
    	return (tete);
    }
    float calcul(liste *pc)
    {  float result;
    	result=(pc->ent,pc->dec)*pow(10,pc->expo);
    	return (result);
    }
    void main()
    {
    	liste *tete,*pc;
    	tete=st();     /*appeler la fonction pour crée la liste*/
    	pc=tete;
    	int i=0;
    	while(pc->svt!=NULL)
    		{printf("%d,%d*10%d\n",pc->ent,pc->dec,pc->expo);
    		 pc=pc->svt;
    		 i++;
    		 }
    	n=i+1;
    	float v[n];
    	i=0;
    	for (pc=tete;pc!=NULL;pc->svt)
    		{
    		 *(v+i)=calcul(pc);          /*appel de calcul mallion par mallion*/
    		 i++;
    		}
    	/*affichage du vecteur*/
    	for(i=0;i<n;i++)
    	 printf("%d \t",v[i]);
     
    }
    et merci d'avance

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 115
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Cela aurait été gentil de nous dire qu'elle était la ligne 46.

    D'abord, mon compilateur rale car:
    - Le main doit retourner un int !
    - n n'est pas déclaré
    - v n'est pas déclaré (ligne 50 :p)

    Un joli warning sur cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (pc=tete;pc!=NULL;pc->svt)
    pc->svt .. ça ne fait rien

    Un autre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result=(pc->ent,pc->dec)*pow(10,pc->expo);
    Même genre
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Je pense que ton problème doit venir de là :
    En C standard (si c'est comme en C++) les tableaux doivent avoir une taille connue à la compilation.

Discussions similaires

  1. Programmer Structure+Liste Chainé
    Par Dalidou dans le forum Débuter
    Réponses: 10
    Dernier message: 21/01/2010, 10h16
  2. Réponses: 3
    Dernier message: 27/03/2009, 18h23
  3. utiliser listes chainées où donné=structure?
    Par xlas-blader dans le forum C
    Réponses: 6
    Dernier message: 05/12/2006, 13h25
  4. les listes chaineés(structures)
    Par snakemetalgear dans le forum C
    Réponses: 18
    Dernier message: 14/11/2006, 18h09
  5. [Débutant]Structure et listes chainées
    Par plagia dans le forum C
    Réponses: 28
    Dernier message: 09/11/2006, 00h00

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