Programme en c de recherche

kamilia -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
aidez moi s.v.p. d'ecrire un programme en language c ki trouve le seconde max ds 1 tableau(utilise une fonction)..
merci d'avance

5 réponses

mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Le seconde max ? Et dans un tableau de quel type ?
0
kamilia
 
slt ,
tableaut de type int , le seconde maximum (mai sans trier le tableau)
merci biennnnnnnnnnnn
0
abdebabes
 
hi h are u my nice girl
0
kamilia
 
hiiiii tu veux me repondre abdebabes ou non???????????
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Le plus simple c'est de parcourir ton tableau et de maintenir une variable "best" et "second_best". Ces deux variables sont initialisées avec la première valeur du tableau. Essaye de me proposer un pseudo code et je t'aiderai à avancer ensuite.

Bonne chance
0
argentine Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   1
 
slt kamilia je vous donne la solution svte:


#include<stdio.h>
#include<conio.h>



int maximum1(int *t,int taille)
{int maxi;
int i;
maxi=t[1];
for(i=2;i<=taille;i++)
{
if(maxi<t[i])
maxi=t[i];
}
return(maxi);
}

int maximum2(int *t,int taille,int maxi)
{ int max,i;
max=t[1];
for(i=2;i<=taille;i++)
{ if(maxi!=t[i] && max<t[i])
max=t[i];
}
return(max);
}





void main()
{
int *tab;
int max1,max2,n;
int i=1;

clrscr();/*pour effacer l'ecrans*/
textcolor(12);
cprintf("Entrez la taille du tableaux:",n);
scanf("%d",&n);

cprintf("Entrez la %d ‚re valeur:",i);/*textcolor pour une ecriture en couleur*/
scanf("%d",&tab[i]); /*textcolor(12):couleur rouge*/


/**********remplir votre tableaux***************/
for(i=2;i<=n;i++)
{
textcolor(12);
cprintf("Entrez la %d ‚me valeur:",i);
scanf("\n%d",&tab[i]);
}

max1=maximum1(tab,n);
max2=maximum2(tab,n,max1);

textcolor(6);
printf("voici le premier maximum :%d\n" ,max1);
printf("voici le deuxi‚me maximum :%d" ,max2);

getch();/*pour stoper sur l'affichage*/

}


pour un qlquanque prbleme contacte moi par email :
argentine85@hotmail.fr
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Je ne pense pas que ce soit une bonne idée de faire son exercice à sa place si tu veux qu'elle progresse, d'autant plus que ta solution comporte quelques erreurs.

Le programme est faux car il omet la case 0.
De plus il ne vérifie pas si le tableau est non vide (segmentation fault s'il est de taille 0 ou 1 en l'occurrence).
Le deuxième max n'est pas trouvé si les valeurs du tableaux sont toutes égales.
Les parenthèse autour de la valeur de return n'ont pas lieu d'exister.
L'usage de conio.h et de ses fonction (cprintf, clrscr,...) est une mauvaise idée car le programme n'est plus portable, il vaut mieux utiliser stdio.h et les fonctions stanfards (printf etc...)
La fonction main est sensée idéalement retourner un int (EXIT_SUCCESS ou 0 si tout va bien, le code d'erreur sinon).

Bonne chance
0