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