à une VIRGULE près...

Fermé
loicjun Messages postés 2 Date d'inscription jeudi 26 novembre 2015 Statut Membre Dernière intervention 27 novembre 2015 - Modifié par baladur13 le 26/11/2015 à 15:52
loicjun Messages postés 2 Date d'inscription jeudi 26 novembre 2015 Statut Membre Dernière intervention 27 novembre 2015 - 27 nov. 2015 à 16:39
Bonsoir, ca fait des semaines que je suis bloqué dans le codage d'un programme qui calcule le NUR 2G RAN d'équipements réseau!
j'ai pu coder quelques lignes et la compilation se heurte à une erreur au niveau de la ligne 7 (CodeBlocks)

il s'affiche: C:\Users\Junic\Desktop\TP algo\amélioré.c:7: error: expected `,' or `...' before numeric constant

j'ai besoin d'une correction s'il vous plait...

le programme complet

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define C 100000

long i,n,d,m,t,r,s,u,v,D,N;
double rapp (long N,long D,int C)
{return C/(N*D);}
double somme1 (long n,long d)
{return (n*d);}
double somme2 (long n,long d,long m,long t)
{return (n*d)+(m*t);}
double somme3 (long n,long d,long m,long t,long r,long s)
{return (n*d)+(m*t)+(r*s);}
double somme4 (long n,long d,long m,long t,long r,long s,long u,long v)
{return (n*d)+(m*t)+(r*s)+(u*v);}
main ()
{printf("Entrer le nombre d'incidents\n",i);
scanf("%d", &i);
if (i=1){
printf ("Entrer le nombre total de cellules 2G deploye sur le reseau\n",N);
scanf ("%ld",&N);
printf ("Entrer la duree de la periode d'observation d'indisponibilite (en minutes)\n",D);
scanf ("%ld",&D);
printf ("Entrer le nombre total de cellules 2G impactees\n",n);
scanf ("%ld",&n);
printf ("Entrer la duree de l'incident sur les cellules 2G impactees\n",d);
scanf ("%ld",&d);
printf("Le NUR calculé vaut %lf\n",rapp(C,N,D)*somme1(n,d));}
else if (i=2){
printf ("Entrer le nombre total de cellules 2G deploye sur le reseau\n",N);
scanf ("%ld",&N);
printf ("Entrer la duree de la periode d'observation d'indisponibilite (en minutes)\n",D);
scanf ("%ld",&D);
printf ("Entrer le nombre total de cellules 2G impactees par l'incident 1\n",n);
scanf ("%ld",&n);
printf ("Entrer le nombre total de cellules 2G impactees par l'incident 2\n",m);
scanf("%ld",&m);
printf ("Entrer la duree de l'incident sur les cellules 2G impactees par l'incident 1\n",d);
scanf ("%ld",&d);
printf ("Entrer la duree de l'incident sur les cellules 2G impactees par l'incident 2\n",t);
scanf ("%ld",&t);
printf ("le NUR calculé vaut %lf\n",rapp(C,N,D)*somme2(n,d,m,t));}
else if (i=3){
printf ("Entrer le nombre total de cellules 2G deploye sur le reseau\n",N);
scanf ("%ld",&N);
printf ("Entrer la duree de la periode d'observation d'indisponibilite (en minutes)\n",D);
scanf ("%ld",&D);
printf ("Entrer le nombre total de cellules 2G impactees par l'incident 1\n",n);
scanf ("%ld",&n);
printf ("Entrer la duree de l'incident sur les cellules 2G impactees par l'incident 1\n",d);
scanf ("%ld",&d);
printf ("Entrer le nombre total de cellules 2G impactees par l'incident 2\n",m);
scanf("%ld",&m);
printf ("Entrer la duree de l'incident sur les cellules 2G impactees par l'incident 2\n",t);
scanf ("%ld",&t);
printf ("Entrer le nombre total de cellules 2G impactees par l'incident 3\n",r);
scanf("%ld",&r);
printf ("Entrer la duree de l'incident sur les cellules 2G impactees par l'incident 3\n",s);
scanf ("%ld",&s);
printf ("le NUR calculé vaut %lf\n",rapp(C,N,D)*somme3(n,d,m,t,r,s));}
else{
printf ("Entrer le nombre total de cellules 2G deploye sur le reseau\n",N);
scanf ("%ld",&N);
printf ("Entrer la duree de la periode d'observation d'indisponibilite (en minutes)\n",D);
scanf ("%ld",&D);
printf ("Entrer le nombre total de cellules 2G impactees par l'incident 1\n",n);
scanf ("%ld",&n);
printf ("Entrer la duree de l'incident sur les cellules 2G impactees par l'incident 1\n",d);
scanf ("%ld",&d);
printf ("Entrer le nombre total de cellules 2G impactees par l'incident 2\n",m);
scanf("%ld",&m);
printf ("Entrer la duree de l'incident sur les cellules 2G impactees par l'incident 2\n",t);
scanf ("%ld",&t);
printf ("Entrer le nombre total de cellules 2G impactees par l'incident 3\n",r);
scanf("%ld",&r);
printf ("Entrer la duree de l'incident sur les cellules 2G impactees par l'incident 3\n",s);
scanf ("%ld",&s);
printf ("Entrer le nombre total de cellules 2G impactees par l'incident 4\n",u);
scanf("%ld",&u);
printf ("Entrer la duree de l'incident sur les cellules 2G impactees par l'incident 4\n",v);
scanf ("%ld",&v);
printf("Le NUR calculé vaut %lf\n",rapp(C,N,D)*somme4(n,d,m,t,r,s,u,v));}
}

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 26/11/2015 à 16:27
Salut loicjun,

C'est une mauvaise idée de définir une macro avec un nom aussi court que "C" et tu viens d'en faire l'expérience.

tu utilises un define où une définis une macro nommée "C" correspondant à 100000

or, tu fais ceci avec ce "C" :

- tu définis une fonction dont le prototype est
double rapp (long N,long D,int C)
: le préprocesseur remplacera
int C
par
int 100000
, ce qui est un nom de variable illicite en langage C
- cette même fonction retourne un calcul
return C/(N*D);
où on ne voit pas bien si tu parles de 100000 ou de ce que tu passes en 3ème argument (le préprocesseur ne se posera pas la question et remplacera le "C" par 100000)
- tu appelles cette fonction en faisant
rapp(C,N,D);
, où le "C" est remplacé par 100000 dans le premier argument

Moralité : change le nom de la macro de C en quelque chose de plus long et explicite et que tu ne risques pas de confondre avec autre chose, et vérifie ton code pour savoir si tu entends utiliser la constante définie par la macro, ou faire autre chose.

Je n'ai pas regardé le reste du code, penche toi sur chaque message d'erreur et warning, et rectifie le code.

Note que c'est aussi une mauvaise idée, pour des raisons similaires d'absence de maîtrise du scope, de définir des variables globales et de plus avec des noms aussi courts et usuels que tes
long i,n,d,m,t,r,s,u,v,D,N;


Dal
0
loicjun Messages postés 2 Date d'inscription jeudi 26 novembre 2015 Statut Membre Dernière intervention 27 novembre 2015
27 nov. 2015 à 16:39
Vraiment merci pour les explications, je vais essayer de modifier et voir!!!
0