[c] : void value not ignored as it ought to be : help

: void value not ignored as it ought to be : help [c] - C++ - Programmation

Marsh Posté le 15-02-2003 à 00:16:48    

salut tlm :)
 
g un ptit pb en c...
 
j'ai cette erreur sur la ligne en gras :
 
voilà la source :
 
#include <stdio.h>
#include <stdlib.h>
 
#define MAX 100
 
/** déclaration de sous-pg **/
 
void saisie( int n, float tab[] );
void occur_v(int n, float tab[], float val);
 
/****** programme principal *******/
 
 
void main ()
{
    /* déclaration variables */
     
    int i;             /* indice de parcours */
    int n;             /* nb de valeurs de tab */
    float tab[MAX];   /* tableau*/
    float val;        /* valeur dont on veut le nb d'occur. */
    float resultat;     /* nb d'occur. */
 
    /* saisie du nb de valeurs de tab */
     
    printf ("Combien de valeurs dans tab ? \n" );
    scanf ("%d", &n);
     
        /* vérif */
         
        while (n <= 0)
        {
                printf ("Erreur, combien de valeurs dans tab ? \n" );
                scanf ("%d", &n);
        }
         
    /* remplissage tab */
     
    saisie(n, tab);
 
    /* saisie valeur recherchée */
 
    printf ("Quelle est la valeur dont vous voulez le nb d'occurences ?\n" );
    scanf ("%f", &val);
 
    /* appel de occur_v */
 

  •  resultat=occur_v (n, tab, val);


    printf ("Le nb d'occurence de la valeur est %f \n", resultat );
     
    system("PAUSE" );  
}
 
 
/** sous-pg saisie **/
 
void saisie ( int n , float tab[] )
 
/*
 
N : saisie
R : permet de saisir des valeurs réelles dans un tableau
E :  
        n : nb de valeurs du tableau
        tab : tableau à remplir
         
S : tab (rempli)
P : n positif
 
*/
 
{
    int i;  /* compteur */
     
    /** remplissage tableau **/
     
    for (i=0 ; i<n ; i++)
    {
        printf ("Entrez la valeur de rang %d \n" , i+1);
        scanf ("%f", &tab[i]);  
    }
}
 
/** sous-pg occur_v **/
 
float occur_v ( int n, float tab[], float val )
 
/*
 
N : occur_v
R : renvoie le nb d'occurences de val dans tab
E :  
    n : nb de valeurs de tab
    tab : tableau où on fait la recherche
    val : valeur recherchée
     
S : res : nb d'occurences de val dans tab
P : n positif
 
*/
 
{
 int i;
 float res;    /* résultat retourné par la fonction */
 
 res=0;
 
 for (i=0 ; i<n ; i++)
 {
     if (tab[i] == val)
        res++;  /* incrémentation compteur */
 
        /* on retourne le résultat de la fonction */
 
        return res;
 }
 
}
 
pour couroner le tout j'ai aussi :
 
conflicting types for occur_v  
 
previous declaration of occur_v
 
si vous voyez...  :heink: packe moi je sèche là :sleep:  
 
merci d'avance :jap:

Reply

Marsh Posté le 15-02-2003 à 00:16:48   

Reply

Marsh Posté le 15-02-2003 à 00:22:43    

Citation :


** déclaration de sous-pg **/  
 
void saisie( int n, float tab[] );  
void occur_v(int n, float tab[], float val);


 

Citation :


float occur_v ( int n, float tab[], float val )


 
OK ?
 


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

Marsh Posté le 15-02-2003 à 00:24:19    

Code :
  1. void occur_v(int n, float tab[], float val);


Et plus loin :  

Code :
  1. float occur_v ( int n, float tab[], float val )
  2. {...}


 
Dans un cas ta fonction est un void, dans l'autre elle renvoit un float :heink: ... tant qu'à faire, autant écrire 2 fois la même chose, le compilateur appréciera  :)
 
Edit : grilled


Message édité par dsls le 15-02-2003 à 00:24:56
Reply

Marsh Posté le 15-02-2003 à 10:00:05    

merci bcp les gars, ça marche :)
 
comme quoi, écrire des choses sans comprendre, c pas génial :-/
 
je viens de comprendre à quoi servait le void ou du moins en gros ;)

Reply

Marsh Posté le 15-02-2003 à 10:13:53    

ben le void c'est tout simplement pour dire que ta fonction ne retourner rien (c'est donc une procédure, au sens PAscal du terme)

Reply

Marsh Posté le 15-02-2003 à 10:37:52    

oui, c'est ce que je viens d'apprendre
 
encore merci pour votre aide les gars :jap:

Reply

Marsh Posté le 15-02-2003 à 13:10:02    

++Taz a écrit :

ben le void c'est tout simplement pour dire que ta fonction ne retourner rien (c'est donc une procédure, au sens PAscal du terme)


Ou une Sub, au sens VB du terme :d
 
[:dehors]


---------------
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