Erreurs de compilation

Erreurs de compilation - C - Programmation

Marsh Posté le 06-10-2008 à 21:09:05    

BOnjour,
J'aimerai créer un programme enfin des une première partie.
Voilà le résumé.
 
Entrée un nombre(1) = x
Entrée un nombre(2) = y
 
X/17 = A, si A est a 0.5 ou plus (4.5, 6.7..) l'arrondire au plus haut (5,7...) si il est moins que 0.5 le dessendre (4,6...)
y/29 = B, si B .....(pareil)
 
Maintenant il faut faire  
 
X/A = A'
Y/B = B'
 
A'+B' = C
 
 
Si C est égale à 63 Tip Top
 
 
 
 
Voici ce que j'ai fait mais ATTENTION au erreur car j'ai vraiment beaucoup de peine.
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int argc, char *argv[])
  4. {
  5.   long reslutat = 0, nombre1 = 0, nombre2 = 0;
  6.   printf("Quel est la hauteur : " );
  7.   scanf("%Id", &nombre1);
  8.   printf("Quel est la longeur de la ligne de jour : " );
  9.   scanf("%Id", &nombre2);
  10.  
  11.   double dessus1 = 0, nombre = resultat1
  12.   if(resultat1 >= 6)
  13.   else (dessus1 = ceil(nombre))
  14.   if (resultat1 < 5)
  15.   else (dessus1 = floor(nombre))
  16.   resultat1 = (nombre1/17)
  17.   double dessus2 = 0, nombre3 = resultat2
  18.   if (resultat2 >= .5)
  19.   else (dessus2 = ceil(nombre3))
  20.   if (resultat2 < .5);
  21.   else (dessus2 = floor(nombre3))
  22.   resultat2 = (nombre2/29)
  23.  
  24.   resultat10 = resultat2 + resultat1;
  25.  
  26.   printf ("%Id + %Id = %Id\n", resultat2, resultat1, resultat10);
  27.  
  28.  
  29.   system("PAUSE" );
  30.   return 0;
  31. }


 
Pouvez-vous m'aider ?
 
Si jamais je le programme encore en fenêtre ms-dos


Message édité par Elmoricq le 06-10-2008 à 23:37:30
Reply

Marsh Posté le 06-10-2008 à 21:09:05   

Reply

Marsh Posté le 06-10-2008 à 21:36:22    

Citation :

~/tmp$ gcc -o sanstitre sanstitre.c  
sanstitre.c: In function ‘main’:
sanstitre.c:11: error: ‘resultat1’ undeclared (first us function)
sanstitre.c:11: error: (Each undeclared identifier is only once
sanstitre.c:11: error: for each function it appears in
sanstitre.c:12: error: expected ‘,’ or ‘;’ before ‘if’
sanstitre.c:21: error: ‘else’ without a previous ‘if’
sanstitre.c:21: error: ‘dessus2’ undeclared (first usefunction)
sanstitre.c:21: warning: incompatible implicit declarauilt-in function ‘floor’
sanstitre.c:21: error: ‘nombre3’ undeclared (first usefunction)
sanstitre.c:22: error: expected ‘;’ before ‘resultat2’
sanstitre.c:26: error: ‘resultat2’ undeclared (first us function)
sanstitre.c:26: error: ‘resultat10’ undeclared (first is function)


A toi de jouer.


---------------
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn ! [:thalis]
Reply

Marsh Posté le 06-10-2008 à 21:36:40    

c'est du C pas du C++

Reply

Marsh Posté le 06-10-2008 à 21:42:23    

Heu oui c'est du C je me suis trompé oups....

Reply

Marsh Posté le 06-10-2008 à 21:44:42    

Merci de fermer ce topic. Erreur

Reply

Marsh Posté le 06-10-2008 à 23:38:09    

Topic déplacé dans la sous-catégorie : "C".
Et titre édité pour le rendre plus explicite.
 
Quant au problème lui-même, je pense que le message de Tholdan est suffisament explicite : tu as pas mal de problèmes dans ton code.

Reply

Marsh Posté le 07-10-2008 à 09:50:43    

voila de quoi faire
 
void main(void)
{
   long int A = 0, B = 0, C = 0,nombre1,nombre2,A_prime,B_prime;  
   
   printf("Quel est la hauteur : " );  
   scanf("%Id", &nombre1);  
   printf("Quel est la longeur de la ligne de jour : " );  
   scanf("%Id", &nombre2);  
   
     A = (long)((nombre1/17)+0.5);  
  if (A == 0)
  {
   printf ("\nHauteur trop petite !" );  
   A_prime = 0;
  }
  else
  {
  A_prime = nombre1/A;
  }
 
  B = (long)((nombre2/29)+0.5);  
  if (B == 0)
  {
   printf ("\nLigne de jour trop petite !" );  
   B_prime = 0;
  }
  else
  {
   B_prime = nombre2/B;
  }
   
     C = B_prime + A_prime;  
     
     printf ("\n%d + %d = %d", A_prime, B_prime, C);  
     
          return 0;  
}

Reply

Marsh Posté le 07-10-2008 à 09:52:02    

void main(void) + scanf = full of fail...
on est plus ne 1785 hein :E

 

main c'ets int main() et fgets est bcp plus safe que scanf.


Message édité par Joel F le 07-10-2008 à 09:52:10
Reply

Marsh Posté le 07-10-2008 à 10:08:28    

DanyJ a écrit :

voila de quoi faire

 

<epic fail code>

 

http://www.izipik.com/images/20081007/nbgxg8m3l2lcioqsd9-retarded.png


Message édité par Elmoricq le 07-10-2008 à 10:08:42
Reply

Marsh Posté le 07-10-2008 à 15:08:30    

Merci bcp

Reply

Marsh Posté le 07-10-2008 à 15:08:30   

Reply

Marsh Posté le 08-10-2008 à 20:38:17    

On s'en fou du "main", c'est le code qui compte puisque personne repondait !!! Vaut mieux un code has been avec la reponse que rien du tout avec un environnment high tech !!
J'ai également le code dans l'autre sens pour avec les solutions qui font 63 !
 
a+

Reply

Marsh Posté le 08-10-2008 à 21:17:47    

enfait faudrai un réponse qui tourne autour de 63 (61à65). 63 étant la meilleure réponse.  
et dans mon résumé d'en haut c'est plutot 2 A' + B' = C  
 
et apres mettre comme dernière phrase :
 
Il faut x marche de A' par B'.
 
x = le multiple commun entre A' et B' pour avoir environ 63,
 
J'ai trouvé quelque chose. Je vous le met demain car c'est sur mon autre ordi.  
---------------------------
Nouvelle donée
---------------------------
Entrée un nombre(1) = x  
Entrée un nombre(2) = y  
 
 
 
Z= (x + y) / 63
arrondire z pour avoir un nombre entier naturel (si plus petit que 1 = faux)
 
X / Z = A
 
Y/ Z = B
 
2A + B = C
 
Si c est :
 
< 61 et >65 = mauvais
de 61 à 61.4999... et de 64.511.... à 65  = acceptable
de 61.5 à 62.4999.... et de 62.2111... à 64.5 = bon
de 62.5 à 62 = excellent
 
------------------------------------
 
 
 
2A'+B' = C  
 
 
Si C est égale à 63 Tip Top

Reply

Marsh Posté le 08-10-2008 à 21:18:20    

2A'+B' = C  
   
   
Si C est égale à 63 Tip Top  
 
 
Ca a rien a voir

Reply

Marsh Posté le 08-10-2008 à 21:19:36    

DanyJ a écrit :

On s'en fou du "main",

Ben pas quand c'est manifestement faux:

DanyJ a écrit :

voila de quoi faire
 
void main(void)
{
.............................
          return 0;  
}


A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 08-10-2008 à 21:45:11    

DanyJ a écrit :

On s'en fou du "main", c'est le code qui compte puisque personne repondait !!! Vaut mieux un code has been avec la reponse que rien du tout avec un environnment high tech !!
J'ai également le code dans l'autre sens pour avec les solutions qui font 63 !

 

a+

 

Ton code est faux. Si tu te complais dans le médiocre, c'est ton problème, mais on ne peut décemment pas te laisser conseiller qui que ce soit vu la qualité de ton code.
Au fait, il est interdit de donner du code tout fait, la catégorie s'appelle Programmation, pas Résolution d'Exercices.


Message édité par Elmoricq le 08-10-2008 à 21:48:36
Reply

Marsh Posté le 08-10-2008 à 22:15:26    

Pour Pierre614, jettes un oeil a la fonction rint de math.h.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed