Programme en c de recherche
Fermé
kamilia
-
23 mars 2008 à 19:06
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 4 avril 2008 à 10:01
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 4 avril 2008 à 10:01
A voir également:
- Programme en c de recherche
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Programme demarrage windows 10 - Guide
- Recherche adresse - Guide
- Désinstaller programme windows 10 - Guide
- Mettre en veille un programme - Guide
5 réponses
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
24 mars 2008 à 01:34
24 mars 2008 à 01:34
Le seconde max ? Et dans un tableau de quel type ?
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
1 avril 2008 à 10:02
1 avril 2008 à 10:02
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
Bonne chance
argentine
Messages postés
10
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
3 avril 2008
1
3 avril 2008 à 20:13
3 avril 2008 à 20:13
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
#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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
4 avril 2008 à 10:01
4 avril 2008 à 10:01
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
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
24 mars 2008 à 19:59
tableaut de type int , le seconde maximum (mai sans trier le tableau)
merci biennnnnnnnnnnn