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 :

Trouver le min,max et le nombre d'occurence du max dans une suite


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut Trouver le min,max et le nombre d'occurence du max dans une suite
    Bonjour à tous!

    Alors voilà, je dois créer un programme qui comme l'indique le titre, doit me donner le max et le nombre d'occurrences de celui-ci ainsi que le minimum d'une série de nombres.

    Ce que je ne comprend pas trop, c'est que cela fonctionne pour une petite série de nombre (3 ou 4), mais ensuite il ne m'affiche pas du tout ce que je veux

    Voici déjà ce que j'ai fais mais je ne vois pas trop mon (mes) erreur(s).
    Bon là je ne réalise l'affichage que pour le minimum mais bon, pour le maximum c'est pareil, ca ne fonctionne pas comme je le voudrais.

    Merci d'avance.
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    #include<stdio.h>
    #include<stdlib.h>
     
    int main()
     
    {
        int tab[30],min,posmin;
    int n,i,maxi,max;
    i=1;
    n=0;
    posmin=0;
     
     
     
        do
        {
               printf("Nombre : ");
               scanf("%d",&tab[i]);
               if (tab[i]>=10 && tab[i]<=100)
               {
               n++;
               i++;
               tab[i]=tab[i];
               }
               else
               {}
        }
        while (tab[i]!=0);
     
       for(i=1;i<=n;i++)
       {
                        min=tab[1];
                        if (tab[i]<=min)
                        {
                                           min=tab[i];
                                           posmin=i;
     
                        }
       }
       for(i=1;i<=n;i++)
       {
                        max=tab[1];
                        if (tab[i]>=max)
                        max=tab[i];
     
       }
       printf("%d\n",min);
       system("pause");
     
     
    }

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    Edit: J'ai réglé une partie de mon problème, à savoir m'afficher le minimum et le maximum, j'ai simplement sorti la ligne min=tab[1] de la boucle for...
    Par contre maintenant nouveau problème :s je ne peux entrer que 7 nombres...et là je ne vois vraiment pas quoi faire

    Merci!

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Salut, bienvenue sur le forum. Je te rappelle qu'en C, les indices d'un tableau vont de 0 à n-1 et non pas de 1 à n. Ceci pourra éviter des plantages

    Citation Envoyé par adri010 Voir le message
    Bonjour à tous!

    Alors voilà, je dois créer un programme qui comme l'indique le titre, doit me donner le max et le nombre d'occurrences de celui-ci ainsi que le minimum d'une série de nombres.
    Voici ce que je te propose :

    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
     
    #include <stdlib.h>
    #include <stdio.h>
     
    int main(void)
    {
    	int tab[] = {1,2,3,4,5,4,9,3,1,9,4,9,3};
    	int n = sizeof tab / sizeof * tab;
    	int i;
    	int min, max; // minimum et maximum du tableau tab
    	int nmax; // nombre d'occurence du maximum du tableau tab
     
    	min = max = tab[0];
    	nmax = 1;
     
    	for(i = 1 ; i < n ; i++)
    	{
    		if(tab[i] < min)
    			min = tab[i];
     
    		if(tab[i] == max)
    			nmax++;
    		else if(tab[i] > max)
    		{
    			max  = tab[i];
    			nmax = 1;
    		}	
    	} /* for(i = 1 ; i < n ; i++) */
     
    	printf("le minimum du tableau est %d\n",min);
    	printf("le maximum du tableau est %d et est atteint %d fois\n",max,nmax);	
     
    	return 0;
    }

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    Merci de ta réponse.

    Le seul problème est que l'utilisateur doit entrer lui même ses propres valeurs, d'où ma boucle do au départ, l'entrée des données doit s'arrêter par l'entrée de -1. J'ai essayé avec -1 d'abord je ne pouvais entrer que 3 valeurs, et 7 en mettant 0 pour la fin de l'entrée... le problème doit donc se situer dans cette boucle mais je n'ai vraiment aucune idée pour le régler. Je réfléchis à ça et je posterai mes idées.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    Ma consigne de base consistait en fait à créer au minimum 4 fonctions pour gérer les différentes parties du programme. Comme c'était mon 1er programme avec des fonctions et que je n'ai eu que 2h de cours sur les fonctions je m'étais dis que ça serait peut être plus simple de d'abord faire un programme sans fonctions.
    La dernière fonction que je dois créer est celle qui réalise l'affichage mais je m'en occuperai en dernier lieu.
    Pour le moment j'ai quelques petits soucis pour les 2 et 3ème qui ne me donne pas les bonnes valeurs.
    Je suppose que je dois faire intervenir le résultat de ma 1ère fonction dans les deux autres (je me trompe?).
    J'ai essayé ceci mais sans succès.
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    #include<stdio.h>
    #include<stdlib.h>
     
    int affiche(int tableau[])
    {
         int i,n;
         i=1;
         n=0;
         do
         {
               printf("Nombre : ");
               scanf("%d",&tableau[i]);
               if (tableau[i]>=10 && tableau[i]<=100)
               {
               n++;
               i++;
               }
         }
         while (tableau[i]!=0);
         for(i=1;i<=n;i++)
         printf(" %d ", tableau[i]);
         return tableau[i];
    }
     
    int minposmin(int min,int posmin)
    {
        int n,i,tableau[20];
        i=1;
        n=0;
        posmin=0;
       min=tableau[1]; 
       for(i=1;i<=n;i++)
       {
     
                        if (tableau[i]<=min)
                        {
                                           min=tableau[i];
                                           posmin=i;
     
                        }
       }
       printf("Le minimum est %d et sa position est %d\n",min,posmin);
       return 0;
    }
     
    int maxocc(int max,int nmax)
    {
        int tableau[20];
        int i,n;
        i=1;
        n=0;
        nmax=0;
     
        max=tableau[1];
       for(i=1;i<=n;i++)
       {
                        if(tableau[i] == max)
                        nmax++;
                        else if(tableau[i] > max)
                        {
                             max  = tableau[i];
                             nmax = 1;
                        }
     
       }
       printf("le max est %d et il est atteint %d fois",max,nmax);
       return 0;
    }
     
     
    int main()
    {
        int tableau[20];
        int min,posmin;
        int max,nmax;
     
        affiche(tableau);
        minposmin(min,posmin);
        maxocc(max,nmax);
        system("pause");
    }

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Citation Envoyé par adri010 Voir le message
    Merci de ta réponse.

    Le seul problème est que l'utilisateur doit entrer lui même ses propres valeurs, d'où ma boucle do au départ, l'entrée des données doit s'arrêter par l'entrée de -1. J'ai essayé avec -1 d'abord je ne pouvais entrer que 3 valeurs, et 7 en mettant 0 pour la fin de l'entrée... le problème doit donc se situer dans cette boucle mais je n'ai vraiment aucune idée pour le régler. Je réfléchis à ça et je posterai mes idées.
    Salut, voici un bon début de code. Je te laisse le modifier pour que la saisie des nombres s'arrête lorsque tu tapes -1.

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    #include <stdlib.h>
    #include <stdio.h>
     
    #define N 30
     
    int main(void)
    {
    	int tab[N];
    	int i;
    	int min, max; // minimum et maximum du tableau tab
    	int nmax; // nombre d'occurence du maximum du tableau tab
    	int val; // valeur saisie par l'utilisateur
    	int ier; // indicateur d'erreur
    	int n = 0;
     
    	// saisie des nombres. On en veut N compris entre 10 et 100.
    	printf("saisie des nombres :\n");
    	do
    	{
    		ier = scanf("%d",&val);
    		if(ier != 1)
    		{
    			printf("Erreur de saisie\n");
    		}
    		else
    		{
    			if( (val >= 10) && (val <= 100) )
    			{
    				tab[n] = val;
    				n++;
    			}
     
    			if(n == N)
    				break;
    		}
    	}
    	while(n != N);
     
    	min = max = tab[0];
    	nmax = 1;
     
    	for(i = 1 ; i < n ; i++)
    	{
    		if(tab[i] < min)
    			min = tab[i];
    		else if(tab[i] == max)
    			nmax++;
    		else if(tab[i] > max)
    		{
    			max  = tab[i];
    			nmax = 1;
    		}	
    	} /* for(i = 1 ; i < n ; i++) */
     
    	printf("le minimum du tableau est %d\n",min);
    	printf("le maximum du tableau est %d et est atteint %d fois\n",max,nmax);	
     
    	return 0;
    }
    Dans ta boucle pour la saisie des nombres, tu commences à l'indice 1. En fait, il faut commencer à l'indice 0

  7. #7
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Pour toute fonction, avant de l'écrire, on doit se poser les questions :

    1. Qu'est-ce que je veux qu'elle fasse ?
      (une chose et une seule)
    2. Qu'est-ce que la fonction a besoin de savoir pour faire son travail ?
      Ceci déterminera les informations à lui communiquer et la réponse conduira à établir la liste des paramètres de la fonction.
    3. Qu'est-ce que la fonction doit me donner comme résultat(s) pour que je puisse exploiter son travail ?
      La réponse déterminera la valeur de retour de la fonction (et parfois complètera la liste des paramètres).

    A- Pour ta fonction minposmin():
    1. Qu'est-ce que je veux qu'elle fasse ?
      Rechercher, dans un tableau, la position du minimum et sa valeur
    2. Qu'est-ce que la fonction a besoin de savoir pour faire son travail ?
      Le tableau à explorer. Pour spécifier un tableau, il faut son adresse de départ et le nombre d'éléments.
    3. Qu'est-ce que la fonction doit me donner comme résultat(s) ?
      la position du minimum et sa valeur. Si je connais la position du minimum, je peux obtenir sa valeur. Ce sera donc la valeur retournée par la fonction.
      Si on veut que la fonction retourne les deux valeurs, au moins l'une des deux devra être retournée par la liste des paramètres.

    Conséquence : Dans le premier cas, le prototype de la fonction et son code seront par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int posmin(int * tableau, int nbElements)
    {
        int i;
        int posmin = 0;
        for(i=1;i<nbElements;i++)
          if (tableau[i]<tableau[posmin]) posmin = i;
        return posmin;
    }
    et dans le second cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int minposmin(int * tableau, int nbElements, int * min)
    {
        int i;
        int posmin = 0;
        for(i=1;i<nbElements;i++)
          if (tableau[i]<tableau[posmin]) posmin = i;
        if(min != NULL) *min = tableau[posmin];
        return posmin;
    }
    Le main, pour tester les fonctions :
    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
    int main(void)
    {
        int tableau[]= {10,5,6,8,7,2,9,12,3};
        int pmin;
        int min;
        int dimTableau = sizeof tableau/ sizeof *tableau;
    //....
        pmin = posmin(tableau,dimTableau);
        min = tableau[pmin];
        printf("Le minimum est %d et sa position est %d\n",min,pmin);
     
        pmin = minposmin(tableau,dimTableau, &min);
        printf("Le minimum est %d et sa position est %d\n",min,pmin);
    //....
    return 0;
    }

    B- Pour obtenir le nombre d'occurences du maximum, il faut d'abord connaître le maximum. On ne peut pas rechercher à la fois le maximum et compter le nombre de fois où il apparait (puisqu'on ne le connait pas encore). Ou alors, il faut déterminer pour toutes les valeurs du tableau le nombre de fois où elles apparaissent, ce qui est lourd et délicat.
    Il est préférable de déterminer d'abord le maximum. D'après ce qui précède, son prototype pourrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int posmax(int * tableau, int nbElements); 
    // ou 
    int maxposmax(int * tableau, int nbElements, int * max);
    Puis écrire une fonction :
    • Qu'est-ce que je veux qu'elle fasse ?
      déterminer le nombre de fois où un nombre apparaît dans un tableau:
    • Qu'est-ce que la fonction a besoin de savoir pour faire son travail ?
      Le tableau à explorer et le nombre à chercher. Pour spécifier un tableau, il faut son adresse de départ et le nombre d'éléments.
    • Qu'est-ce que la fonction doit me donner comme résultat(s)
      Le nombre d'occurrences.

    Son prototype sera donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int occurences(int * tableau, int nbElements, int nombre);
    Je laisse le code à ta discrétion.

    L'écriture de maxocc devient par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int maxocc(int * tableau, int nbElements)
    {
      int pmax = posmax(tableau,nbElements);
      return occurences( tableau, nbElements, tableau[pmax]);
    }
    C- Ta fonction affiche() est bancale, elle fait deux choses totalement différentes : elle lit un tableau et elle affiche un tableau. Une fonction est dédiée à UNE tache précise. Si il y a deux taches à réaliser, il faut deux fonctions différentes.
    Si on ne respecte pas ce principe, on ne sait plus qui fait quoi et comment, et on ne peut pratiquement plus réutiliser la fonction à cause de son hyperspécialisation,...
    C'est pourquoi, dans les exemples précédents, j'ai exclu les printf() des fonctions sinon, les fonctions auraient fait deux choses indépendantes : calculer le min ET l'afficher. Cet affichage systématique est pervers : je ne peux plus obtenir le min ou le max sans l'afficher même si cet affichage me gène (comme dans maxocc()).

    Donc fait deux fonctions : l'une lit le tableau, l'autre l'affiche
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    Bonjour à tous,

    Voilà j'ai modifié mon code, tout fonctionne (bon il me reste à parfaire la disposition de l'affichage), seul bémol, il ne m'affiche pas le nombre d'occurrences du maximum, j'ai lu et relu le code plusieurs fois, pas moyen de trouver la faute

    Si vous pouviez m'aider à la trouver, ça serait sympa^^

    Merci à vous et en particulier à diogene qui m'a permis de mieux comprendre l'utilisation des fonctions

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    #include<stdio.h>
    #include<stdlib.h>
     
    int lecture(int tab[])
    {
        int nb;
        int tabtemp;
        nb=0;
            do
            {
                    printf("Nombre : ");
                    scanf("%d",&tabtemp);
                    if (tabtemp>10)
                    {
                                if(tabtemp<100)
                                {
                                            nb++;
                                            tab[nb]=tabtemp;
                                }
                    }
            }
            while (tabtemp!=-1);
            return nb;
    }
     
    void minposmin(int tab[],int nb,int *min,int *posmin)
    {
         int i;
         for(i=1;i<=nb;i++)
         {
                            if (tab[i]<*min)
                            {
                                            *min=tab[i];
                                            *posmin=i;
                            }
         }
         return;
    }
     
    void maxoccmax(int tab[],int nb,int *max,int *occmax)
    {
         int i;
            for(i=1;i<=nb;i++)
            {
                             if(tab[i] == *max)
                             *occmax++;
                             else if(tab[i] > *max)
                             {
                                  *max  = tab[i];
                             }
            }
            return;
    }
     
    void affichage(int tab[],int nb,int min, int posmin, int max, int occmax)
    {
         int i;
         printf("le vecteur entre est\n:");
     
         for(i=1;i<=nb;i++)
         {
                           printf(" %d ",tab[i]);
         }
         printf("le minimum est %d et sa premiere apparition se trouve en %d position\n",min,posmin);
         printf("le maximum est %d et est atteint %d fois\n",max,occmax);
         return;
    }
     
    int main()
    {
        int i;
        int tab[30];
        int nb;
        int posmin;
        int occmax;
        int min;
        int max;
        for (i=1;i<=29;i++)
        {
            tab[i]=0;
        }
        nb=lecture(tab);
        min=tab[1]; 
        posmin=1;
        minposmin(tab,nb,&min,&posmin);
        max=tab[1];
        occmax=0;
        maxoccmax(tab,nb,&max,&occmax);
        affichage(tab,nb,min,posmin,max,occmax);
        system("pause");
    }

  9. #9
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Attention à l'ordre de priorité des opérateurs. Il faut utiliser (*occmax)++; et non *occmax++; (qui incrémente l'adresse contenu dans occmax et non la valeur pointée.

    En dehors de cela, voici quelques remarques :
    • En C, les indices des tableaux commence à 0, pas à 1. Pourquoi ne pas respecter cette convention ?
    • Il manque une vérification du nombre de valeurs saisies (si l'utilisateur rentre 30 nombres ou plus, tu vas écrire en dehors du tableau, ce qui est une erreur).
    • La fonction de saisie n'est pas très robuste. Si on effectue une saisie incorrecte, par exemple en rentrant le caractère 'a', le programme part en boucle infinie.
    • La plage autorisée pour les nombres étant 10 à 100, il aurait été de bon ton de l'indiquer lors de l'invite et/ou d'afficher un message d'erreur le cas échéant plutôt que d'ignorer silencieusement la saisie.
    • Lorsque tu trouves un nouveau maximum, il faut réinitialiser occmax (ici, en saisissant [22, 22, 22, 22, 33, -1], le programme indique un nombre d'occurrences de 4 pour le maximum 33).


    A titre personnel, je serais plutôt partisan de laisser les fonctions minposmin() et maxoccmax() initialisées les variables min, max, posmin et occmax plutôt que de compter sur l'appelant pour le faire.

  10. #10
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Salut.

    Quelques remarques supplémentaires :


    • Ta fonction main() est de type int ... elle doit donc retourner un int (0 ou EXIT_SUCCESS pour indiquer la fin du programme).
    • Il est plus rigoureux de mettre void entre parenthèses lorsqu'une fonction ou procédure ne prend pas de paramètres (c'est valable pour ton main()).
    • system("pause"); peut être remplacé par getchar(); (qui est portable).
    • Pour les procédures (fonctions de type void qui ne retournent rien), l'instruction return ne doit pas y figurer je pense (et return, en temps normale, doit être suivis de la valeur (ou autre) qu'il doit retourner).


    Cordialement,
    Idriss

  11. #11
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par ok.Idriss Voir le message
    Ta fonction main() est de type int ... elle doit donc retourner un int (0 ou EXIT_SUCCESS pour indiquer la fin du programme).
    EXIT_FAILURE est également une valeur de retour prévue par la norme.


    Citation Envoyé par ok.Idriss Voir le message
    Pour les procédures (fonctions de type void qui ne retournent rien), l'instruction return ne doit pas y figurer je pense (et return, en temps normale, doit être suivis de la valeur (ou autre) qu'il doit retourner).
    Le return n'est effectivement pas utile, mais c'est correct.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/07/2012, 11h25
  2. Trouver le nombres d'arrangement des intercalaires dans une suite
    Par bizulk dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 20/02/2012, 11h40
  3. calculer le nombre d'occurence de mot dans une chaine
    Par hadjiphp dans le forum Langage
    Réponses: 8
    Dernier message: 20/04/2009, 11h06
  4. Nombre d options a afficher dans une liste (select)
    Par wwluigi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 16/01/2007, 15h17
  5. [PERL]Nombre d'un caractère présent dans une chaine
    Par LE NEINDRE dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 13h58

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