Votre question

aide langage c : fonction

Tags :
  • Programmation
  • Écrans
Dernière réponse : dans Programmation
8 Février 2005 19:44:33

salut!

je dois écrire en C une fonction partiel qui inverse les valeurs de deux variables passées en paramètres.
Void main (void)
{
//Exemple d'appel pour i et j
int i=5,j=3;
printf("valeurs : i=%d , j=%d\n",i,j); // j'aurai à l'écran < valeurs : i=5 , j=3 >
//appel de la fonction
partiel( );
printf("valeurs : i=%d , j=%d\n",i,j); // j'aurai à l'écran < valeurs : i=3 , j=5 >

pourriez vous m'aidez svp

Autres pages sur : aide langage fonction

8 Février 2005 19:46:18

Citation :

dj_darky a écrit :
salut!

je dois écrire en C une fonction partiel qui inverse les valeurs de deux variables passées en paramètres.
Void main (void)
{
//Exemple d'appel pour i et j
int i=5,j=3;
printf("valeurs : i=%d , j=%d\n",i,j); // j'aurai à l'écran < valeurs : i=5 , j=3 >
//appel de la fonction
partiel( );
printf("valeurs : i=%d , j=%d\n",i,j); // j'aurai à l'écran < valeurs : i=3 , j=5 >

pourriez vous m'aidez svp

Ce que tu fait c'est du C++ pas du C
8 Février 2005 19:49:02

Dans le main :
  1. partiel( &i, &j );


Et quelque part dans ton source :
  1. void partiel( int * i, int * j ) {
  2. int swap;
  3. swap = *j; *j = *i; *i = swap;
  4. }
Contenus similaires
8 Février 2005 19:55:54

neokiller, c'est bien du C qu'il fait.
Le c++ c'est du C + des fonctions supplémantaire
et la dimension objet surtout.
Aucune des fonctions qu'ils utilisent n'est du C++.
8 Février 2005 20:01:54

Il disait ca peut être à cause des commentaires ?
Les // ne sont pas reconnus par tous les compilateurs pure C ... (c'est pas C ANSI ...)

coding standard
8 Février 2005 20:59:43

merci a vous!
8 Février 2005 21:36:56

Citation :

zx-81 a écrit :
Il disait ca peut être à cause des commentaires ?
Les // ne sont pas reconnus par tous les compilateurs pure C ... (c'est pas C ANSI ...)

coding standard

exactement
8 Février 2005 21:48:58

Tu peux le faire aussi sans créer la variable swap intermédiaire (ça change pas grand chose mais bon):

i=i+j;
j=i-j;
i=i-j;

Par contre, le C++ je connais pas alors je te laisse la "version java" :lol: 
8 Février 2005 22:26:02

Le problème de cette solution c'est si (i + j) dépasse la taille d'un entier ... ;-)
8 Février 2005 22:27:18

Pas bête ça :D 

Mais bon ça peut toujours servir
9 Février 2005 02:05:49

Citation :
Pas bête ça :D 
Mais bon ça peut toujours servir


Personnellement, je trouve ca hyper gore.
Mieux vaut passer par une variable temporaire, y'a beaucoup moins de risques.
Parce que là, si jamais ca bug a cause du fait que i + j dépasse la taille d'un entier, t'es mal :) 

Et puis même, de toutes facons, c'est ultra-moche et illisible.
9 Février 2005 02:09:29

lol a cause des // tu pensais au C++ ?

si c'est une fonction qui retourne un resultat, utilise une variable swap et retourne la valeur, sinon tu joue avec les pointeurs, c'est aussi simple que ca.
9 Février 2005 07:10:21

pour retourner le résultat sufit de mettre sa :

return (i,j)

c'est correcte ?
9 Février 2005 12:59:55

non :) 
Tu ne peux pas retourner deux valeurs en C.

Soit tu fais une structure
Soit tu fais tout par pointeurs.
17 Septembre 2008 00:43:05

salut,

dès le début de mes cours de langage C on utilisait ce code:
  1. swap=i
  2. i=j
  3. j=swap


inutlie de faie une fonction pour ça, tu l'insère directement dans ton code

j'espère t'avoir aidé
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS