Programmation c
Résolu/Fermé
Teo
-
13 févr. 2009 à 21:41
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 17 févr. 2009 à 11:29
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 17 févr. 2009 à 11:29
A voir également:
- Programmation c
- Application de programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Programmation télécommande porte de garage brico depot - Forum Matériel & Système
- Problème de programmation digicode extel klavy 3 ✓ - Forum Loisirs / Divertissements
- Programmation binaire - Guide
8 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
14 févr. 2009 à 11:28
14 févr. 2009 à 11:28
Salut,
Je vais te donner un point de départ.
Tu tries les 20 numéros par ordre croissante ou décroissante et tu n'affiches que les 3 premiers ou derniers.
Je vais te donner un point de départ.
Tu tries les 20 numéros par ordre croissante ou décroissante et tu n'affiches que les 3 premiers ou derniers.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
13 févr. 2009 à 23:48
13 févr. 2009 à 23:48
Salut,
Bah écris le ^^.
Si t'as des questions, n'hésite pas à les poser.
Bah écris le ^^.
Si t'as des questions, n'hésite pas à les poser.
Ca prend 2 minutes à écrire.
Faudrait arrêter de prendre les gens pour des pigeons.
Faudrait arrêter de prendre les gens pour des pigeons.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
Teo
14 févr. 2009 à 11:22
14 févr. 2009 à 11:22
Salut,
Si on te demande un exercice, c'est que tu dois être capable de le faire ;).
Si tu n'y arrives vraiment pas, propose au moins l'algorithme avec des mots français.
Si t'y arrives toujours pas, tu peux déjà t'occuper de juste donner le nombre le plus petit d'un tableau.
Et ça, la réponse est sur wikipedia et a même été répondu sur le forum de nombreuses fois.
Si on te demande un exercice, c'est que tu dois être capable de le faire ;).
Si tu n'y arrives vraiment pas, propose au moins l'algorithme avec des mots français.
Si t'y arrives toujours pas, tu peux déjà t'occuper de juste donner le nombre le plus petit d'un tableau.
Et ça, la réponse est sur wikipedia et a même été répondu sur le forum de nombreuses fois.
HACKER 712
Messages postés
1282
Date d'inscription
lundi 15 décembre 2008
Statut
Contributeur
Dernière intervention
10 décembre 2009
255
14 févr. 2009 à 11:05
14 févr. 2009 à 11:05
en fait je crois qu'il nous demande de lui écrire car lui ne sait pas....
c'est ça ???
c'est ça ???
HACKER 712
Messages postés
1282
Date d'inscription
lundi 15 décembre 2008
Statut
Contributeur
Dernière intervention
10 décembre 2009
255
>
papefall2005
16 févr. 2009 à 09:25
16 févr. 2009 à 09:25
pour l'instant le prog ne demande pas a l'utilisateur de rentrer des numéros.
aussi il ne marche pas mais ca peut etre un point de depart he l'affiche quand meme, mais il est mal ecrit
int main ()
{
long tableau[20] = {5,8,65,78,4,123,45,7,9,65,84,566,12,57,48,56,18,687,589,2};
long casier [20], armoire[20], valise[20], bagage[20], sac[20], fruit[20]; cadeau[20];
long i, t = 1000, nombre = 0;
for ( i= 0 ; i< 20 ; i++ )
{
long compteur = i+1;
if (tableau[i] < tableau [compteur] )
{
casier[i] = tableau[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", casier[1], casier[2], casier[3]);
return 0;
}
nombre = 0;
for ( i = 0 ; i<nombre ; i++ )
{
long compteur = i+1;
if (casier[i] < casier[compteur] )
{
casier[i] = armoire[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", armoire[1], armoire[2], armoire[3]);
return 0;
}
nombre = 0;
for ( i = 0 ; i<nombre ; i++ )
{
long compteur = i+1;
if (armoire[i] < armoire[compteur] )
{
armoire[i] = valise[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", valise[1], valise[2], valise[3]);
return 0;
}
nombre = 0;
for ( i = 0 ; i<nombre ; i++ )
{
long compteur = i+1;
if (valise[i] < valise[compteur] )
{
valise[i] = bagage[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", bagage[1], bagage[2], bagage[3]);
return 0;
}
nombre = 0;
for ( i = 0 ; i<nombre ; i++ )
{
long compteur = i+1;
if (bagage[i] < bagage[compteur] )
{
bagage[i] = sac[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", sac[1], sac[2], sac[3]);
return 0;
}
nombre = 0;
for ( i = 0 ; i<nombre ; i++ )
{
long compteur = i+1;
if (sac[i] < sac[compteur] )
{
sac[i] = fruit[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", fruit[1], fruit[2], fruit[3]);
return 0;
}
nombre = 0;
for ( i = 0 ; i<nombre ; i++ )
{
long compteur = i+1;
if (fruit[i] < fruit[compteur] )
{
fruit[i] = cadeau[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", cadeau[1], cadeau[2], cadeau[3]);
return 0;
}
nombre = 0;
}
aussi il ne marche pas mais ca peut etre un point de depart he l'affiche quand meme, mais il est mal ecrit
int main ()
{
long tableau[20] = {5,8,65,78,4,123,45,7,9,65,84,566,12,57,48,56,18,687,589,2};
long casier [20], armoire[20], valise[20], bagage[20], sac[20], fruit[20]; cadeau[20];
long i, t = 1000, nombre = 0;
for ( i= 0 ; i< 20 ; i++ )
{
long compteur = i+1;
if (tableau[i] < tableau [compteur] )
{
casier[i] = tableau[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", casier[1], casier[2], casier[3]);
return 0;
}
nombre = 0;
for ( i = 0 ; i<nombre ; i++ )
{
long compteur = i+1;
if (casier[i] < casier[compteur] )
{
casier[i] = armoire[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", armoire[1], armoire[2], armoire[3]);
return 0;
}
nombre = 0;
for ( i = 0 ; i<nombre ; i++ )
{
long compteur = i+1;
if (armoire[i] < armoire[compteur] )
{
armoire[i] = valise[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", valise[1], valise[2], valise[3]);
return 0;
}
nombre = 0;
for ( i = 0 ; i<nombre ; i++ )
{
long compteur = i+1;
if (valise[i] < valise[compteur] )
{
valise[i] = bagage[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", bagage[1], bagage[2], bagage[3]);
return 0;
}
nombre = 0;
for ( i = 0 ; i<nombre ; i++ )
{
long compteur = i+1;
if (bagage[i] < bagage[compteur] )
{
bagage[i] = sac[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", sac[1], sac[2], sac[3]);
return 0;
}
nombre = 0;
for ( i = 0 ; i<nombre ; i++ )
{
long compteur = i+1;
if (sac[i] < sac[compteur] )
{
sac[i] = fruit[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", fruit[1], fruit[2], fruit[3]);
return 0;
}
nombre = 0;
for ( i = 0 ; i<nombre ; i++ )
{
long compteur = i+1;
if (fruit[i] < fruit[compteur] )
{
fruit[i] = cadeau[i];
nombre++;
}}
if (nombre == 3)
{
printf ("les trois plus petits nombres sont %i\n%i\n%i\n", cadeau[1], cadeau[2], cadeau[3]);
return 0;
}
nombre = 0;
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
HACKER 712
Messages postés
1282
Date d'inscription
lundi 15 décembre 2008
Statut
Contributeur
Dernière intervention
10 décembre 2009
16 févr. 2009 à 12:53
16 févr. 2009 à 12:53
Ca, c'est du programme lool.
Je donne quand même une version plus concise :
Je donne quand même une version plus concise :
#include <stdio.h> #include <limits.h> #define NB_MIN 3 int main(void){ int tab[] = {5,8,65,78,4,123,45,7,9,65,84,566,12,57,48,56,18,687,589,2}; int min[NB_MIN+1]; int i; min[0]=INT_MIN; for(i=1;i<NB_MIN+1;i++){ size_t j; min[i]=INT_MAX; for(j=0;j<sizeof tab/sizeof *tab;j++) if( tab[j]>min[i-1] && tab[j]<min[i] ) min[i]=tab[j]; } for(i=1;i<NB_MIN+1;i++) printf("min %d : %d\n",i,min[i]); return 0; }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
16 févr. 2009 à 13:10
16 févr. 2009 à 13:10
Salut,
min[0]=INT_MIN;
min[i]=INT_MAX; ?!!
min[0]=INT_MIN;
min[i]=INT_MAX; ?!!
HACKER 712
Messages postés
1282
Date d'inscription
lundi 15 décembre 2008
Statut
Contributeur
Dernière intervention
10 décembre 2009
255
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
16 févr. 2009 à 13:25
16 févr. 2009 à 13:25
tu as vu ?
et dire que tu doutais de mes capacités....
!!!
et dire que tu doutais de mes capacités....
!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
16 févr. 2009 à 11:00
16 févr. 2009 à 11:00
Tu ne sais pas ?
Qu'est-ce que tu ne sais pas ?
Qu'est-ce que tu ne sais pas ?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
16 févr. 2009 à 18:45
16 févr. 2009 à 18:45
Re,
Un autre exemple
Un autre exemple
#include <stdio.h> #define NB_MIN 3 int main(void) { int tab[] = {5,8,65,78,4,123,45,7,9,65,84,566,12,57,48,56,18,687,589,2}; int min[NB_MIN]; int i=0,j,k,imin,temp; for(k=(sizeof tab / sizeof *tab)-1;i<NB_MIN && k>=1;--k){ imin=0; for(j=1;j<=k;++j) if(tab[imin]>tab[j]) imin=j; temp=tab[k]; tab[k]=tab[imin]; min[i++]=tab[imin]; tab[imin]=temp; } for(i=0;i<NB_MIN;i++) printf("min %d : %d\n",i,min[i]); return 0; }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
16 févr. 2009 à 19:07
16 févr. 2009 à 19:07
Allez, un dernier exemple pour la forme, avec tri du tableau comme le suggérait lami20j.
Par contre, s'il y a plusieurs minimums (par exemple trois 2), les minimums affichés seront identiques. Ce qui n'était pas le cas de l'autre version.
#include <stdio.h> #include <stdlib.h> #define NB_MIN 3 static int comp(const void *a, const void *b) { return *(const int*)a-*(const int*)b; } int main(void) { int tab[] = {5,8,65,78,4,123,45,7,9,65,84,566,12,57,48,56,18,687,589,2}; qsort(tab,sizeof tab/sizeof *tab,sizeof *tab,comp); for(int i=0;i<NB_MIN;i++) printf("min %d :%d\n",i,tab[i]); return 0; }
Par contre, s'il y a plusieurs minimums (par exemple trois 2), les minimums affichés seront identiques. Ce qui n'était pas le cas de l'autre version.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
16 févr. 2009 à 19:23
16 févr. 2009 à 19:23
Salut,
C'est la raison pour laquelle ta 1ère solution convient ;-)
C'est la raison pour laquelle ta 1ère solution convient ;-)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
16 févr. 2009 à 19:41
16 févr. 2009 à 19:41
Re,
J'ai corrigé la mienne pour remplir la même condition (Ce qui n'était pas le cas de l'autre version. )
J'ai corrigé la mienne pour remplir la même condition (Ce qui n'était pas le cas de l'autre version. )
#include <stdio.h> #define NB_MIN 3 int main(void) { int tab[] = {-20,-20,-20,-17,-17,2,5,8,65,78,4,123,45,7,9,65,84,566,12,57,48,56,18,687,589,2}; int min[NB_MIN]; int i=0,j,k,imin,temp; for(k=(sizeof tab / sizeof *tab)-1;i<NB_MIN && k>=1;--k){ imin=0; for(j=1;j<=k;++j) if(tab[imin]>tab[j]) imin=j; temp=tab[k]; tab[k]=tab[imin]; if(tab[k]!=tab[k+1]) min[i++]=tab[imin]; tab[imin]=temp; } for(i=0;i<NB_MIN;i++) printf("min %d : %d\n",i,min[i]); return 0; }
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
17 févr. 2009 à 08:34
17 févr. 2009 à 08:34
Au final, vous lui avez fait son programme au feignant. Il a bien fait de demander ;)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
17 févr. 2009 à 08:44
17 févr. 2009 à 08:44
Salut,
Ben, c'est la faute de fiddy ;-DDDD
Ben, c'est la faute de fiddy ;-DDDD
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
17 févr. 2009 à 11:29
17 févr. 2009 à 11:29
Non de HACKER712 :DDD.