Garder un nombre toujours positif
Fermé
Arkolos
-
14 déc. 2008 à 12:21
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 14 déc. 2008 à 18:34
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 14 déc. 2008 à 18:34
A voir également:
- Garder un nombre toujours positif
- Nombre facile - Télécharger - Outils professionnels
- Excel garder le 0 devant un nombre - Guide
- Dans ce fichier, réalisez le graphique xy (nuage de points ou dispersion), avec les x en abscisse. dans le graphique, les points dessinent un nombre. lequel ? - Forum Bureautique
- Fil noir et blanc positif ou négatif - Forum Matériel & Système
- Gto nombre episode ✓ - Forum Cinéma / Télé
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
14 déc. 2008 à 12:50
14 déc. 2008 à 12:50
Salut,
Tout dépend, si ton tableau est trié ou pas.
Les algorithmes ne sauront pas les mêmes suivant les cas.
Tout dépend, si ton tableau est trié ou pas.
Les algorithmes ne sauront pas les mêmes suivant les cas.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
14 déc. 2008 à 18:34
14 déc. 2008 à 18:34
Mon tableau est trié en ordre décroissant mais je ne voit pas ce que cela change...
Ca change la complexité de l'algorithme.
Dans le cas du tableau non trié, tu dois parcourir tous les éléments, alors que pour le tableau tu n'as pas besoin d'aller jusqu'au dernier. Donc l'algorithme est plus performant. De plus, tu n'auras même pas besoin de calculer la valeur absolue.
Par exemple, dans ton cas, tu peux faire tout simplement :
Si tu comprends pas mon algorithme, teste sur un exemple tu verras ;)
Sinon, n'hésite pas à poser des questions.
Cdlt
Ca change la complexité de l'algorithme.
Dans le cas du tableau non trié, tu dois parcourir tous les éléments, alors que pour le tableau tu n'as pas besoin d'aller jusqu'au dernier. Donc l'algorithme est plus performant. De plus, tu n'auras même pas besoin de calculer la valeur absolue.
Par exemple, dans ton cas, tu peux faire tout simplement :
#include <stdio.h> double plusProche(double *tab, double nb, size_t len){ size_t i=0; if( nb>tab[0] ) return tab[0]; while( i<len && nb<tab[i++] );i--; return ( tab[i-1]-nb < nb-tab[i]) ? tab[i-1] : tab[i]; } int main(void){ double tab[]={1.5,1.3,1.2,1.1}; double nb; puts("nombre :"); scanf("%lf",&nb); printf("plus proche : %lf\n",plusProche(tab,nb,sizeof tab/sizeof *tab)); return 0; }
Si tu comprends pas mon algorithme, teste sur un exemple tu verras ;)
Sinon, n'hésite pas à poser des questions.
Cdlt
14 déc. 2008 à 17:41