Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1777 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  petit prog en C qui ne marche pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

petit prog en C qui ne marche pas

n°167691
jean pierr​e decombes
Posté le 27-06-2002 à 22:08:45  profilanswer
 

bonjour  
je suis debutant en c , j'ai ecris un petit prog avec une procedure qui ne tourne pas, j'ai beau le lire et le relire je ne trouve pas la solution . quelqu'un serait il pret a jeter un coup d'oeil?

mood
Publicité
Posté le 27-06-2002 à 22:08:45  profilanswer
 

n°167693
jean pierr​e decombes
Posté le 27-06-2002 à 22:10:50  profilanswer
 

help....

n°167694
Olivier51
Posté le 27-06-2002 à 22:11:39  profilanswer
 

Mets le sur le forum ... ça ira plus vite !!!


Message édité par Olivier51 le 27-06-2002 à 22:12:00
n°167695
jean pierr​e decombes
Posté le 27-06-2002 à 22:12:49  profilanswer
 

ok
 
 
 /* Somme et produit de 2 nombres   */
 /* avec utilisation d'une procedure*/
 /*    */
 /* 27 juin 2002                  
 
 
 #include <stdio.h>
 
 char *cmd = "pause";
 
 
 void passe(int a,int b ,int c,int d);
 main()
 {
 int z,t,s,p,u,v,suv,puv;
 clrscr();
 printf("\n\t\t SAISIR LE PREMIER CHIFFRE" );
 printf("\n\t\t\t" );
 scanf("%d",&z);
 printf("\n\t\t SAISIR LE DEUXIEMME CHIFFRE" );
 printf("\n\t\t\t" );
 scanf("%d",&t);
 passe(z,t,s,p);
 printf("\n\t\t LA SOMME EST:",s);
 printf("\n\t\t LE PRODUIT EST:",p);
 printf("\n\t\t SAISIR LE TROISIEME CHIFFRE" );
 printf("\n\t\t\t" );
 scanf("%d",&u);
 printf("\n\t\t SAISIR LE QUATRIEME CHIFFRE" );
 printf("\n\t\t\t" );
 scanf("%d",&v);
 passe(u,v,suv,puv);
 printf("\n\t\t LA SOMME EST:",suv);
 printf("\n\t\t LE PRODUIT EST:",puv);
        printf("\n\t\t" );
 system(cmd);
 }
 
 void passe(int a,int b,int c,int d)
 { c=a+b;
   d=a*b;
         }


Message édité par jean pierre decombes le 27-06-2002 à 22:13:47
n°167697
Olivier51
Posté le 27-06-2002 à 22:17:43  profilanswer
 

Explique brièvement le problème, ou message du compilateur, ça ira encore beaucoup plus vite ...

n°167698
verdoux
And I'm still waiting
Posté le 27-06-2002 à 22:17:50  profilanswer
 

Voir le chapitre sur le passage d'argument par pointeur.

n°167699
jean pierr​e decombes
Posté le 27-06-2002 à 22:20:13  profilanswer
 

en fait il tourne mais on dirait qu'il n'y a rien dans mes variables.
du genre LA SOMME EST:(rien)
j'ai essaye de mettre un printf apres la saisie des valeurs et ca sort rien non plus...

n°167701
Olivier51
Posté le 27-06-2002 à 22:23:00  profilanswer
 

Oui, comme le disais Verdoux, c'est le passage des paramètres en argument qui ne vas pas, il faut que tu résonnes sur des pointeurs :
void passe(int a,int b,int *c,int *d)
 
plus tout les changements qui vont avec ...

n°167702
jean pierr​e decombes
Posté le 27-06-2002 à 22:24:16  profilanswer
 

il faut que je mette une etoile sur tous ls pointeurs c'est ca?

n°167707
Olivier51
Posté le 27-06-2002 à 22:30:19  profilanswer
 

Oui exactement

mood
Publicité
Posté le 27-06-2002 à 22:30:19  profilanswer
 

n°167709
koulip31
Posté le 27-06-2002 à 22:32:42  profilanswer
 

Olivier51 a écrit a écrit :

Oui exactement




une referance n'est il pas plus propre ? et plus sur ?


---------------
télétunestel ouimélétuness sitélétunes mélétunetron [:koulip31] [:suri]
n°167712
LetoII
Le dormeur doit se réveiller
Posté le 27-06-2002 à 22:35:25  profilanswer
 

Effectivement, maintenent tout dépend de ce qu'on veut faire


---------------
Le Tyran
n°167713
jean pierr​e decombes
Posté le 27-06-2002 à 22:35:33  profilanswer
 

merci
 :)

n°167715
Olivier51
Posté le 27-06-2002 à 22:37:16  profilanswer
 

C'est vrai que dans ce cas une référence ferait l'affaire, et éviterait de faire plein de changement.

n°167733
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 27-06-2002 à 23:01:45  profilanswer
 

sauf erreur de ma part, la fonction main() ne doit elle pas se trouver à la fin du code, apres toutes les autres fonctions ? (ça n'a rien a voir mais bon)


---------------
J'ai un string dans l'array (Paris Hilton)
n°167735
Olivier51
Posté le 27-06-2002 à 23:04:18  profilanswer
 

Non, tu n'es vraiment pas obligé

n°167738
verdoux
And I'm still waiting
Posté le 27-06-2002 à 23:12:32  profilanswer
 

koulip31 a écrit a écrit :

 
une referance n'est il pas plus propre ? et plus sur ?  




Y a pas de référence en C.

n°167915
Olivier51
Posté le 28-06-2002 à 10:46:56  profilanswer
 

T'appelles ça comment : void passe(int a,int b,int &c,int &d) ?

n°168257
verdoux
And I'm still waiting
Posté le 28-06-2002 à 22:28:05  profilanswer
 

Olivier51 a écrit a écrit :

T'appelles ça comment : void passe(int a,int b,int &c,int &d) ?




Code :
  1. /* test.c */
  2. void toto(int& i) {}
  3. int main() {
  4. int i = 0;
  5. toto(i);
  6. return 0;
  7. }


 
> gcc test.c
test.c:1: parse error before `&'
>


Message édité par verdoux le 28-06-2002 à 22:28:34
n°168258
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-06-2002 à 22:30:24  profilanswer
 

Verdoux a écrit a écrit :

 
Y a pas de référence en C.




exact !
référence = C++ uniquement


---------------
J'ai un string dans l'array (Paris Hilton)
n°168285
neerd
Posté le 28-06-2002 à 23:20:55  profilanswer
 

jean pierre decombes a écrit a écrit :

 
..........
 printf("\n\t\t LA SOMME EST:",suv);
 printf("\n\t\t LE PRODUIT EST:",puv);
        printf("\n\t\t" );
 system(cmd);
 }
.........




 
Tes printf il manque pas un truc?
c'est pas plutot:
        printf("\n\t\t LA SOMME EST: %d",suv);
        printf("\n\t\t LE PRODUIT EST: %d",puv);
sinon c'est normal que sa affiche rien  :D  

n°168295
Suri
Darksurious
Posté le 28-06-2002 à 23:51:43  profilanswer
 

Olivier51 a écrit a écrit :

T'appelles ça comment : void passe(int a,int b,int &c,int &d) ?




 
void toto(int *a)
{
   *a = 2;
}
 
main()
{
  int a=1;
  toto(&a);             /* une adresse non? */
  printf("%d\n", a);
}
 
>./a.out
2
>


---------------
Suri.morkitu.org : Balades au coeur de la ville...
n°168302
darkoli
Le Petit Dinosaure Bleu
Posté le 29-06-2002 à 00:07:49  profilanswer
 

jean pierre decombes a écrit a écrit :

ok
 
 
 /* Somme et produit de 2 nombres   */
 /* avec utilisation d'une procedure*/
 /*    */
 /* 27 juin 2002                  
 
 
 #include <stdio.h>
 
 char *cmd = "pause";
 
 
 void passe(int a,int b ,int c,int d);
 main()
 {
 int z,t,s,p,u,v,suv,puv;
 clrscr();
 printf("\n\t\t SAISIR LE PREMIER CHIFFRE" );
 printf("\n\t\t\t" );
 scanf("%d",&z);
 printf("\n\t\t SAISIR LE DEUXIEMME CHIFFRE" );
 printf("\n\t\t\t" );
 scanf("%d",&t);
 passe(z,t,s,p);
 printf("\n\t\t LA SOMME EST:",s);
 printf("\n\t\t LE PRODUIT EST:",p);
 printf("\n\t\t SAISIR LE TROISIEME CHIFFRE" );
 printf("\n\t\t\t" );
 scanf("%d",&u);
 printf("\n\t\t SAISIR LE QUATRIEME CHIFFRE" );
 printf("\n\t\t\t" );
 scanf("%d",&v);
 passe(u,v,suv,puv);
 printf("\n\t\t LA SOMME EST:",suv);
 printf("\n\t\t LE PRODUIT EST:",puv);
        printf("\n\t\t" );
 system(cmd);
 }
 
 void passe(int a,int b,int c,int d)
 { c=a+b;
   d=a*b;
         }




 

Code :
  1. #include <stdio.h>
  2. int somme_produit(int a, int b, int* somme, int* produit);
  3. int main(void)
  4. {
  5. int a=0;
  6. int b=0;
  7. int somme=0;
  8. int produit=0;
  9. /* Lecture de a et de b */
  10. [...]
  11. /* Calculs */
  12. if (somme_produit(a,b, &somme, &produit) != 1)
  13.   {
  14.    fprintf(stderr, "Y'a une couille !!!\n" );
  15.    return $code_quand_ya_un_probleme_et_je_ne_sais_plus_si_c'est_1_ou_0_ou_autre;
  16.   }
  17. /* Affichage */
  18. [...]
  19. /* Fin */
  20. return $code_qui_faut_quand_tout_marche_bien;
  21. }
  22. int somme_produit(int a, int b, int* somme, int* produit)
  23. {
  24. if (somme == NULL) return 0;
  25. if (produit == NULL) return 0;
  26. (*somme)=a+b;
  27. (*produit)=a*b;
  28. return 1;
  29. }


Message édité par darkoli le 29-06-2002 à 00:09:23

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°168340
Olivier51
Posté le 29-06-2002 à 10:05:29  profilanswer
 

Ok, c'est peut-être parce que j'utilise des compilateurs C++ pour programmer en C ...
 
Pourtant il me semble que quand je programme avec TIGCC (pour programmer en C sur la TI89 et 92+) les référence marchent, et le compilateur est basé sur GCC !!!
 
A moins que l'erreur vienne de ta syntaxe, moi j'écrirais plutôt :  
void toto(int &i) {}  
que :
void toto(int& i) {}  

n°168342
LetoII
Le dormeur doit se réveiller
Posté le 29-06-2002 à 10:09:06  profilanswer
 

Olivier51 a écrit a écrit :

 
void toto(int &i) {}  
que :
void toto(int& i) {}  
 




 
C la même chose


---------------
Le Tyran
n°168344
darkoli
Le Petit Dinosaure Bleu
Posté le 29-06-2002 à 10:44:51  profilanswer
 

Olivier51 a écrit a écrit :

Ok, c'est peut-être parce que j'utilise des compilateurs C++ pour programmer en C ...
 
Pourtant il me semble que quand je programme avec TIGCC (pour programmer en C sur la TI89 et 92+) les référence marchent, et le compilateur est basé sur GCC !!!
 
A moins que l'erreur vienne de ta syntaxe, moi j'écrirais plutôt :  
void toto(int &i) {}  
que :
void toto(int& i) {}  
 




 
Ils ont dû ajouter des trucs non standards (pour le C).


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°168345
antp
Super Administrateur
Champion des excuses bidons
Posté le 29-06-2002 à 10:54:03  profilanswer
 

je confirme, les références c'était une nouveauté du C++, selon ce que j'ai appris à l'école.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°169381
Musaran
Cerveaulté
Posté le 02-07-2002 à 01:15:38  profilanswer
 

C'est sûr !
-références
-class
-fonctions membres
-patrons
Tout ça c'est des nouveautés du C++ par rapport au C.
 
Si on fait du C avec un compilateur C++, comment sait-on qu'on ne fait que du C ?


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°169394
kvl
Posté le 02-07-2002 à 02:36:53  profilanswer
 

#include <stdio.h>  
 

Code :
  1. char *cmd = "pause";
  2. void passe(int a,int b ,int c,int d); /* pkoi cette ligne ? */
  3. main()
  4. {
  5. int z,t,s,p,u,v,suv,puv;
  6. clrscr();
  7. printf("\n\t\t SAISIR LE PREMIER CHIFFRE" );
  8. printf("\n\t\t\t" );
  9. scanf("%d",&z);
  10. printf("\n\t\t SAISIR LE DEUXIEMME CHIFFRE" );
  11. printf("\n\t\t\t" );
  12. scanf("%d",&t);
  13. passe(z,t,s,p);
  14. printf("\n\t\t LA SOMME EST:",s);
  15. printf("\n\t\t LE PRODUIT EST:",p);
  16. printf("\n\t\t SAISIR LE TROISIEME CHIFFRE" );
  17. printf("\n\t\t\t" );
  18. scanf("%d",&u);
  19. printf("\n\t\t SAISIR LE QUATRIEME CHIFFRE" );
  20. printf("\n\t\t\t" );
  21. scanf("%d",&v);
  22. passe(u,v,suv,puv);
  23. printf("\n\t\t LA SOMME EST:",suv);
  24. printf("\n\t\t LE PRODUIT EST:",puv);
  25.        printf("\n\t\t" );
  26. system(cmd);
  27. }
  28. void passe(int a,int b,int c,int d)
  29. { c=a+b;
  30.   d=a*b;
  31.         }


 
Moi je ferais ça mais bon, j'ai pas fait de c depuis 7 ou 8 mois !!
 
rq : c pas du passage par reference mais par valeur ...
 

Code :
  1. #include <stdio.h>
  2. char *cmd = "pause";
  3. void passe(int a,int b,int *c,int *d)
  4. { *c=a+b;
  5.   *d=a*b;
  6.         }
  7. main()
  8. {
  9. int z,t,s,p,u,v,suv,puv;
  10. clrscr();
  11. printf("\n\t\t SAISIR LE PREMIER CHIFFRE" );
  12. printf("\n\t\t\t" );
  13. scanf("%d",&z);
  14. printf("\n\t\t SAISIR LE DEUXIEMME CHIFFRE" );
  15. printf("\n\t\t\t" );
  16. scanf("%d",&t);
  17. passe(z,t,&s,&p);
  18. printf("\n\t\t LA SOMME EST:",s);
  19. printf("\n\t\t LE PRODUIT EST:",p);
  20. printf("\n\t\t SAISIR LE TROISIEME CHIFFRE" );
  21. printf("\n\t\t\t" );
  22. scanf("%d",&u);
  23. printf("\n\t\t SAISIR LE QUATRIEME CHIFFRE" );
  24. printf("\n\t\t\t" );
  25. scanf("%d",&v);
  26. passe(u,v,&suv,&puv);
  27. printf("\n\t\t LA SOMME EST:",suv);
  28. printf("\n\t\t LE PRODUIT EST:",puv);
  29.        printf("\n\t\t" );
  30. system(cmd);
  31. }


Message édité par kvl le 02-07-2002 à 02:43:43
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  petit prog en C qui ne marche pas

 

Sujets relatifs
petit probleme avec requete Delete je pense facile mais je vois pasPetit problème de syntaxe
Petit question pour un faire un menu déroulantAu SECOUR G petit probleme que je comprent po
[open gl] pourquoi mon programme marche pas ??? (tjs pas 2)Éxecution d'un prog java
[vb] J'arrive pas a changer l'icone de mon prog !![C] Les structures ... tableaux .. le mien marche po ...
Comment il s'apelle le prog tout gratuit pour faire les installs ?[IDEE] UN PROG EN PHP POUR DL LES PAGES DU WEB
Plus de sujets relatifs à : petit prog en C qui ne marche pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR