probléme code C
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

probléme code C



  1. #1
    mortaurat

    probléme code C


    ------

    Bonjour,
    je viens vers vous car etant etudiant en DUT GEII, je programme un peu en C.
    En ce moment on travail sur les fonctions et les pointeurs.
    Je dois créer un programme qui appel 3 fonctions (saisie,tri et affichage) afin de pouvoir saisir des nombres dans un tableaux, les trier et les afficher;
    voici pour l'instant mon code:

    Code:
    #include <stdio.h>
    #include <string.h>
    #include <math.h>
    
    void saisi(int*);
    void tri (  ) ;
    void affichage (int*) ;
    
    void main ()
    {
    int tab[4] ;
    int b=0 ;
    	while (b < 4)
    	{
    	saisi(&tab[b]);
    	b = b + 1 ;
    	}
    	b = 0 ;
    	while (b < 4 )
    	{
    	affichage(&tab[b]);
    	b = b +1 ;
    	}
    
    }
    	
    
    
    void saisi ( int* nb )
    {
        int plop ;
    	printf ("entrez un nombre : ");
    	scanf ("%d", &plop);
    	*nb = plop ;
    	
    }
    void tri ( )
    {
    
    }
    void affichage (int*v)
    {
    int a = 0 ;
    	while (a < 4)
    	{
    	printf ("\n %d", v* ) ;
    	a = a+1 ;
    	}
    }
    J'ai une petite erreur sur la derniere fonction (affichage), lorsque j'essaye de compiler j'obtient cette erreur:
    1>c:\users\morty\desktop\langu age c\pointeur\pointeur\pointeur.c pp(46) : error C2059: erreur de syntaxe: ')'
    elle se situe au niveau de la ligne printf ("\n %d", v* ) ;
    Je n'arrive pas à la regler, avez vous une idée ?



    .

    -----
    Dernière modification par gienas ; 31/01/2009 à 13h41. Motif: Ajouté balises code

  2. #2
    Coincoin

    Re : probléme code C

    Salut,
    Pourquoi "v*" ?

    Et à quoi sert le "a" ?
    Encore une victoire de Canard !

  3. #3
    mortaurat

    Re : probléme code C

    et bien le v* ca affichera la variable pointée par v c'est à dire tab[b].
    le a servait à afficher toutes les valeurs, mais je me rend compte que en fait ca affichera 4 fois la même valeur, je dois plutot faire une boucle while dans ma fonction main sur affichage.
    Enfin bref, je veut juste tester ce prog pour voir ce qu'il donne...

  4. #4
    Coincoin

    Re : probléme code C

    C'est "*v" la variable pointée, pas "v*". Ça résoudra ton erreur à la compilation. Mais comme tu l'as dit, ça ne va pas donner ce que tu veux.
    Encore une victoire de Canard !

  5. A voir en vidéo sur Futura
  6. #5
    whoami

    Re : probléme code C

    Bonjour,

    1)
    Code:
    void main()
    est invalide par rapport à la norme, main renvoie toujours un int.

    2) En toute logique, la fonction
    Code:
    void saisi(int*);
    devrait te servir à remplir ton tableau, et non à lire une seule valeur. Si tu tiens quand même à persister dans une lecture unique, alors fais une fonction renvoyant la valeur lue :
    Code:
    int saisi(void);
    qui sera appelée par la fonction servant à remplir le tableau.

    3) pour affichage, le mieux est de passer le tableau à la fonction, + le nombre d'éléments à afficher.

  7. #6
    mortaurat

    Re : probléme code C

    Merci coincoin, c'etait ca l'erreur, ca m'a permis de bien avancer
    Il ne me reste plus qu'a chercher un peu pour faire la fonction "tri" afin de ranger mon tableau dans l'ordre.

    Merci a tous

  8. #7
    mortaurat

    Re : probléme code C

    petite question, je compile avec visual c++ et lorsque je met system ("pause") ; il me sort que ca existe pas, une petite idée ?

  9. #8
    invite6de5f0ac

    Re : probléme code C

    Bonsoir,

    Normalement (en standard) c'est
    Code:
    system ("PAUSE") ;
    en majuscules. C++ comme C fait la différence entre les deux. Quoiqu'ici c'est juste une chaîne de caractères, on pourrait penser que ça ne joue pas, mais apparemment si.

    -- françois

  10. #9
    mortaurat

    Re : probléme code C

    error C3861: 'system'*: identificateur introuvable meme avec la majuscule

    j'ai fais un petit scanf ("%d", &b);
    ca me fait une sorte de pause ^^

  11. #10
    invite6de5f0ac

    Re : probléme code C

    Ah d'accord. Ca me semblait louche aussi qu'il râle sur une chaîne de caractères (à l'exécution d'accord mais pas à la compilation). C'est parce que la fonction "system" n'est pas déclarée, il faut ajouter
    Code:
    #include <stdlib.h>
    au début.

    -- françois

  12. #11
    mortaurat

    Re : probléme code C

    en effet, ca va mieux maintenant. Merci beaucoup
    A la fac, c'est curieux on utilisait pas cette librairy, mais bon, la prochaine fois je le saurais.

    Voici le programme que je viens de finir pour ceux que ca peut aider à comprendre l'appel de fonction, les tableaux et les pointeur:

    /*le but de ce programme est d'utiliser les tableaux, l'appel de fonction, les pointeurs et tout particulierement
    le passage de parametre par adresse.
    Le programme ci contre realise grâce à une methode de tri à bulle un tableaux de 10 entiers rangé par odre croissant*/

    #include <stdio.h>
    #include <string.h>
    #include <math.h>
    #include <stdlib.h>

    void saisi(int*); // declaration fonction saisie
    void tri (int*, int*) ; // declaration fonction tri
    void affichage (int*) ; // declaration fonction affichage

    void main () // programme principal, qui appel les fonctions
    {
    int tab[10] ; // creation d'un tableau de 10 cases
    int b=0, c=0, d =0 ; // creation de 3 variables b, c et d initialisées à 0
    while (b < 11) // boucle repetée 11 fois qui permet la saisie des valeurs
    {
    saisi(&tab[b]);
    b = b + 1 ;
    }
    b=0;
    while (d < 54) // boucle d'iteration grande, on peut choisir n'importe quelle chiffre pourvu qu'il soit grand. Necessaire pour le tri à bulle
    {
    while (b< 11 )//repetition d'une boucle 11 fois qui appel la fonction tri
    {
    c = c + 1 ;
    tri (&tab[b], &tab[c]) ;
    b = b +1 ;
    }
    b = 0 ;
    c = 0 ;
    d = d +1 ;
    }
    b = 0 ;
    while (b < 11 ) // boucle qui appel la fonction affichage
    {
    affichage(&tab[b]);
    b = b +1 ;
    }
    printf ("\n \n") ;
    system ("pause") ; // pause du system, admirez le resultat =)
    }



    void saisi ( int* nb )// fonction saisie
    {
    int plop ; // creation variable plop
    printf ("entrez un nombre : "); //affichage "entrez un nombre :"
    scanf ("%d", &plop); // on recolte la valeur entrée dans plop
    *nb = plop ; // tab[b] = plop ; b etant incrementé dans main

    }


    void tri (int* rabite, int* dorian ) //fonction tri
    {
    int a, i =0 ;
    while ( i < 11)
    {
    if (*rabite > *dorian) //si tab[x] > tab[x +1]
    {
    a = *rabite ; // on stock tab[x] dans une variable
    *rabite = *dorian ; // tab[x] recoit tab[x+1]
    *dorian = a ; //tab[x+1] recoit a (c'est a dire l'ancienne valeur de tab[x])
    i = i +1 ; //incrementation de la variable i
    }
    else
    {
    i = i + 1 ; //autrement on ne change rien et on incremente i afin de continuer a verifier si on est bien dans l'ordre.
    }
    }
    }

    void affichage (int*v) // fonction affichage
    {
    printf ("\n %d", *v ) ; //affichage de tab[b], b etant incrementé dans la fonction principale.

    }

  13. #12
    invite6de5f0ac

    Re : probléme code C

    Citation Envoyé par mortaurat Voir le message
    A la fac, c'est curieux on utilisait pas cette librairy, mais bon, la prochaine fois je le saurais.
    Bizarre en effet, mais personnellement il y a un certain nombre d' #includes que je mets toujours même si je n'en ai pas vraiment besoin... Du coup je ne me pose plus de questions. Parmi celles-ci il y a bien sûr stdlib.h qui contient plein plein de fonctions très utiles.

    -- françois

  14. #13
    JPL
    Responsable des forums

    Re : probléme code C

    Les fichiers sources doivent être copiés dans une balise Code pour garder les indentations sans lesquelles la lecture est pénible.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  15. #14
    invite6de5f0ac

    Re : probléme code C

    Citation Envoyé par JPL Voir le message
    Les fichiers sources doivent être copiés dans une balise Code pour garder les indentations sans lesquelles la lecture est pénible.
    ... et accessoirement, des noms de variables comme "plop", "rabite" ou "dorian" ne facilitent pas la lecture non plus ...

    -- françois

Discussions similaires

  1. [Brun] probleme code telecomande
    Par patatovaldez dans le forum Dépannage
    Réponses: 0
    Dernier message: 07/01/2008, 19h05
  2. code en CCS problème
    Par sdow dans le forum Électronique
    Réponses: 9
    Dernier message: 13/10/2007, 17h36
  3. Probleme de code; sh script
    Par Evil.Saien dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 04/10/2005, 16h28
  4. Problème ICC17 code 27
    Par proton88 dans le forum Dépannage
    Réponses: 6
    Dernier message: 04/03/2005, 23h43
  5. Petit probleme de code
    Par invite4b9cdbca dans le forum Internet - Réseau - Sécurité générale
    Réponses: 4
    Dernier message: 27/01/2005, 20h21
Découvrez nos comparatifs produits sur l'informatique et les technologies.