exercice pointeur et fonction langage C

exercice pointeur et fonction langage C - C - Programmation

Marsh Posté le 09-04-2009 à 12:37:18    

Bonjour,
s'il vous plais pouvais vous résoudre cette exercice
Exercice Sur Les Pointeurs et les Fonction
écrire une procédure "permute" qui permet de permuter les valeurs de deux variables entières et écrire un programme dans lequel on saisira deux nombres entiers avant de faire appel a cette procédure et d'afficher le contenue de ces variable afin de vérifier la permutation
Voici ma solution mais j'arrive pas a compiler
 
/*permutation*/
#include<stdio.h>;
#include<conio.h>;
void permute(int *x,int *y){
int val;
val=*x;
*x=*y;
*y=val;
}
void main(){
int a;int b;
clrscr();
scanf("%d%d,&a,&b);
permute(a,b);
printf("a=%d,b=%d",a,b);
do{}
while(kbhit()==0);
}

Reply

Marsh Posté le 09-04-2009 à 12:37:18   

Reply

Marsh Posté le 09-04-2009 à 12:53:59    

permute( &a, &b );
 
tu passe une adresse pas une valeur.
 
Apres conio, clrscr et scanf donne envie de vomir

Reply

Marsh Posté le 09-04-2009 à 13:25:33    

Joel F a écrit :

permute( &a, &b );
 
tu passe une adresse pas une valeur.
 
Apres conio, clrscr et scanf donne envie de vomir


Bah, c'est un débutant.
Tu aurais pu aussi remarquer le prototype de main, les ; après les #include

Code :
  1. /*permutation*/
  2. #include<stdio.h>
  3. #include<conio.h>
  4. void permute(int *x,int *y)
  5. {
  6.   int val;
  7.   val=*x;
  8.   *x=*y;
  9.   *y=val;
  10. }
  11. int main(void)
  12. {
  13.   int a;
  14.   int b;
  15.   clrscr();
  16.   scanf("%d%d,&a,&b);
  17.   permute(&a,&b);
  18.   printf("a=%d,b=%d",a,b);
  19.   do{}
  20.   while(kbhit()==0);
  21.   return 0;
  22. }

Reply

Marsh Posté le 09-04-2009 à 14:25:15    

Trap D a écrit :


Bah, c'est un débutant.


je pense surtout qu'il a un prof de C incompétent :/

Reply

Marsh Posté le 09-04-2009 à 16:15:15    

Trap D a écrit :


Bah, c'est un débutant.
Tu aurais pu aussi remarquer le prototype de main, les ; après les #include


Ceci suffit :

Code :
  1. /*permutation*/
  2. #include <stdio.h>
  3. void permute (int *x, int *y)
  4. {
  5.    int val = *x;
  6.    *x = *y;
  7.    *y = val;
  8. }
  9. int main (void)
  10. {
  11.    int a;
  12.    int b;
  13.    if (scanf ("%d%d", &a, &b) == 2)
  14.    {
  15.       printf ("a = %d, b = %d\n", a, b);
  16.       permute (&a, &b);
  17.       printf ("a = %d, b = %d\n", a, b);
  18.    }
  19.    return 0;
  20. }


Message édité par Emmanuel Delahaye le 09-04-2009 à 16:16:22

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 09-04-2009 à 21:58:02    

Joel F a écrit :


je pense surtout qu'il a un prof de C incompétent :/


+1
J'ai rarement vu des cours de C de niveau inférieur à DESS (Master 2 maintenant) qui était à la norme, 89 ou 99.
Les grands classiques c'est :

  • void main
  • pause() ou équivalent pour bloquer le programme à la fin à la place d'un breakpoint
  • clear() ou clrscr() pour effacer la console.
  • 1 à la place de stdout. C'est POSIX, mais pas standard. Idem write au lieu de fwrite etc.
  • Les closures et les fonctions locales (c'est juste une extention de gcc). Dangereux car ni le C ni le C++ ne sont des langages prévus pour supporter ça. C'est pas un des paradigmes du langage. Vu surtout chez les profs qui enseignent des langages fonctionnels, genre caml.
  • Les lectures/écritures fichiers controllées par des feof(). Erreur classique en C. feof est une fonction pour auditer une erreur, pas pour la detecter.
  • fflush( stdin ); fflush ne marche que pour les flux de sortie, sur un flux d'entrée c'est undefined.

Reply

Marsh Posté le 09-04-2009 à 21:59:56    

Je corrigeais simplement ses erreurs, je n'essayais pas d'améliorer son code.

Reply

Marsh Posté le 10-04-2009 à 10:39:13    

merci a vous tous et ce qui concerne le prof vous avez raison je suis en 3 ème année géophysique ingénieura et j'ai un prof spécialiser on physique qui nous fait des cour de programmation langage c :)

Reply

Marsh Posté le 10-04-2009 à 11:52:29    

Bon, je lui avais collé un ban d'un mois, mais vu que c'est le 4eme topic que je ferme pour violation à la règle 0D, je prolonge la sanction de façon substantielle


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

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