Algo C

Résolu/Fermé
deilloncedric Messages postés 10 Date d'inscription samedi 12 janvier 2008 Statut Membre Dernière intervention 20 février 2009 - 30 janv. 2008 à 18:10
tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 - 30 janv. 2008 à 18:38
Bonjour,j'ai un petit probleme dans mon programme quand je lui demande de me trouver la valeur min et max il me met 0 merci d'avance.
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include <math.h>

typedef struct eleve //definie eleve en tant que chaine et nombre
{
char nom[12];
float moyenne;
};
void saisienom(eleve _classe[], int _taille)
{
int i;
system("cls");
for(i=0;i<_taille;i++)
{
printf("nom eleve:");
scanf("%s",&_classe[i].nom);

}

}
void saisiemoyenne(eleve _classe[], int _taille)
{
int i;
system("cls");
for(i=0;i<_taille;i++)
{
printf("moyenne de l'eleve:\n");
scanf("%f",&_classe[i].moyenne);
}
}
void affichage(eleve _classe[], int _taille)
{
int i;
system ("cls");
for(i=0;i< _taille;i++)
{
printf("les noms et les moyennes sont %s %.2f\n",_classe[i].nom,_classe[i].moyenne);
}
system("pause");
}
void maximum(eleve _classe[], int _taille)
{
int i,max;

system("cls");

max = _classe[0].moyenne;
for (i=1;i<_taille;i++)
{
if (_classe[i].moyenne>max)
max = _classe[i].moyenne;
}
printf("le plus grand est %.2f\n",max);
system("pause");
}
void minimum(eleve _classe[], int _taille)
{
int i,min;
system("cls");

min = _classe[0].moyenne;
for(i=1;i<_taille;i++)
{
if (_classe[i].moyenne<min)
min= _classe[i].moyenne;
}
printf("le plus petit est %.2f\n",min);
system("pause");
}
void admis(eleve _classe[], int _taille)
{
int i;
for(i=0;i<_taille;i++)
{
if(_classe[i].moyenne>=10)
printf("bravo vous etes admis");
}
}
void rattrapage(eleve _classe[], int _taille)
{
}
void refuser(eleve _classe[], int _taille)
{
}
int menu()


{
int choix;
system("cls");

printf("1: saisienom\n");
printf("2: saisiemoyenne\n");
printf("3: affichage\n");
printf("4: maximun\n");
printf("5: minimum\n");
printf("6: admis\n");
printf("7: rattrapage\n");
printf("8: refuser\n");
printf("9: quitter\n");
printf("veuillez saisir votre choix:");
scanf("%d",&choix);

return choix;

}


int main()
{

const int taille=12;
int choix;
eleve classe[taille];

srand(time(NULL));
do
{

choix=menu();
switch(choix)
{
case 1:saisienom(classe,taille);
break;
case 2:saisiemoyenne(classe,taille);
break;
case 3: affichage(classe,taille);
break;
case 4: maximum(classe,taille);
break;
case 5: minimum(classe,taille);
break;
case 6: admis(classe,taille);
break;
case 7: rattrapage(classe,taille);
break;
case 8: refuser(classe,taille);
break;
}

}while (choix!=9);

return 0;



}

1 réponse

tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 120
30 janv. 2008 à 18:38
void maximum(eleve _classe[], int _taille) ==> int maximum( eleve *pClasse , int Taille )

en effet :
- En C, tu passe en paramètre un pointeur sur le premier élément du tableau
- Si ta fonction ne retourne rien (void) tu ne risque pas d'avoir autre chose que 0
1