à une VIRGULE près...
loicjun
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
loicjun Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
loicjun Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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
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. |
A voir également:
- à une VIRGULE près...
- Google sheet remplacer point par virgule - Forum Réseaux sociaux
- 2 décimales après la virgule excel ✓ - Forum Programmation
- Remplacement automatique dans Google Sheets - Forum Google Docs
- Le point à la place de la virgule ✓ - Forum Excel
- Excel:chiffres après virgule ✓ - Forum Excel
1 réponse
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
- cette même fonction retourne un calcul
- tu appelles cette fonction en faisant
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
Dal
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 Cpar
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
loicjun
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
Vraiment merci pour les explications, je vais essayer de modifier et voir!!!