IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Passer une fonction en parametre


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Passer une fonction en parametre
    Bonjours à tous, j'ai un nouveau problème. J'aimerais que l'on m'éclaircisse, sa fait un petit moments que sa me bloque..

    Voici mon énoncé : "Ecrire un algorithme qui permet de saisir 10 mots de 20 caractères dans un tableau, puis qui affiche le tableau avec son contenu trié par ordre alphabétique."

    La ou sa bloque, c'est pour trié les mots, je doit le faire en fonction, et avec les tableaux et tous je saisie mal.

    Voici le début de mon algorithme sans la fonction de trie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Exercice1() // Appel de l'exercice 1
    {
    	system("cls"); // On efface l'écran
     
    	// On présente ici l'exercice
    	printf("------------------------------------------------\n");
    	printf("Exercice1\n");
    	printf("------------------------------------------------\n");
    	printf("Saisie 10 mots de 20 caracteres dans un tableau\n");
    	printf("------------------------------------------------\n\n");
     
    	// Déclaration & Initialisation des variables
    	int i = 0;
    	int resu = 0;
     
    	// Déclaration & Initialisation du tableau
    	char tableau[10][20] = {0};
     
    // DEBUT
     
    	printf("\nSaisissez les mot a la suite\n");
     
    	for(i=0; i<=9; i++) // On fait une boucle de 10
    	{
    		scanf("%s", &tableau[i]); // On utilise un %s pour une chaîne de caractères (%c, un caractère seulement)
    		fflush(stdin); // On vide le flux
    	}
     
    	//ordonnerTableau(tableau);
     
    	printf("\nDans l'ordre alphabetics\n");
     
    	// On fait une boucle de 10
    	for(i=0; i<=9; i++)
    	{
    		printf(": %s", tableau[i]);
    		printf("\n");
    	}
     
    // FIN
    }
    Notre prof nous a dit de passé la fonction en paramètre, mais je ne comprends pas très bien. Si quelqu'un pouvais m'éclaircir dans mon problème, et tout conseil pour améliorer mon algo sera également la bienvenue!

    Merci d'avance
    Dernière modification par diogene ; 30/12/2009 à 17h06. Motif: Correction des balises

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Si j'ai bien compris, il faut passer la fonction ordonnerTableau en paramètre de la fonction Exercice1. Pour cela, il faut utiliser les pointeurs de fonction.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Oui, pour un tableau une dimension j'ai bien réussi avec les pointeurs, mais la c'est un tableau a double dimensions et sa me pose problèmes
    Qu'est ce que sa veut dire concrètement passé une fonction en paramètre?

  4. #4
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Commence déjà par régler les problèmes que tu as avec ce code là.

    Une fonction doit retourner quelque chose. Que retourne ta fonction Exercice1 ?
    De plus si ta fonction ne prend aucun paramètre il faut lui mettre (void).

    Si tu utilises le formateur %s il ne faut pas mettre de & devant ton tableau dans le scanf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%s", &tableau[i]);
    Le fflush(stdin); est un comportement indéterminé.
    Tu peux regarder la FAQ.


    Pour passer un tableau à deux dimensions à une fonction il suffit d'indiquer la taille de la deuxième dimension. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /* Fonction */
    void affiche(char tableau[][20]) {
    /* Du code ici */
    }
    /* Appel de fonction */
    affiche(tableau);

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci pour tes indications, en effet, j'ai mal copier/coller mon code, j'ai bien mi le void Exercice1() dans mon code, je vais essayer de suite de résoudre tous sa merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer une fonction en parametre
    Par Nitroreg dans le forum Caml
    Réponses: 2
    Dernier message: 18/04/2010, 16h44
  2. passer une classe comme parametre d'une fonction
    Par antoine dpt dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/07/2009, 13h10
  3. faire passer une fonction entant que parametre d'une fonction
    Par gali_fr dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/05/2008, 15h18
  4. passer une fonction dans un parametre d'une propriété de classe
    Par CAML dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 06/08/2006, 19h52
  5. Réponses: 12
    Dernier message: 25/01/2006, 07h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo