Incrémenter un nombre décimale ? en C
brocolivache21
-
brocolivache21 -
brocolivache21 -
Bonjour,
voila pour m'amuser j'ai fait ce code :
#include <stdio.h>
#include <stdlib.h>
int main()
{
double nombre = 0;
double codeSecret = 0;
printf("entrer votre code secret decimal\n");
scanf("%lf", &codeSecret);
while (nombre != codeSecret)
{
printf("%lf", nombre);
nombre ++;
if (nombre == codeSecret)
{
printf("le code secret est %lf\n\n", nombre);
}
}
return 0;
}
mais vu que c'est un nombre décimale cela prend beaucoup trop de temps et donc je voudrais savoir si l'on peut incrémenter un nombre décimal de cette manière :
pour codeSecret = 5.11
la partie "entière" d'un côté jusqu'à trouver le bon nombre : 1, 2 , 3 , 4, 5 garde le nombre entier en mémoire
puis de l'autre côté la partie "décimale"
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 la garder en mémoire
puis assembler les deux partie pour avoir la valeur de codeSecret qui est = 5.11
et donc normalement gagné du temps
merci de vos réponses ! et Joyeux Noël !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ps : je suis novice
voila pour m'amuser j'ai fait ce code :
#include <stdio.h>
#include <stdlib.h>
int main()
{
double nombre = 0;
double codeSecret = 0;
printf("entrer votre code secret decimal\n");
scanf("%lf", &codeSecret);
while (nombre != codeSecret)
{
printf("%lf", nombre);
nombre ++;
if (nombre == codeSecret)
{
printf("le code secret est %lf\n\n", nombre);
}
}
return 0;
}
mais vu que c'est un nombre décimale cela prend beaucoup trop de temps et donc je voudrais savoir si l'on peut incrémenter un nombre décimal de cette manière :
pour codeSecret = 5.11
la partie "entière" d'un côté jusqu'à trouver le bon nombre : 1, 2 , 3 , 4, 5 garde le nombre entier en mémoire
puis de l'autre côté la partie "décimale"
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 la garder en mémoire
puis assembler les deux partie pour avoir la valeur de codeSecret qui est = 5.11
et donc normalement gagné du temps
merci de vos réponses ! et Joyeux Noël !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ps : je suis novice
A voir également:
- Incrémenter un nombre décimale ? en C
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Ascii nombre de caractères - Guide
- Mettre un 0 devant un nombre dans excel - Guide
- Gto nombre episode ✓ - Forum Cinéma / Télé
7 réponses
Salut,
Tu peux incrémenter la partie entière et la partie décimale
Tu peux incrémenter la partie entière et la partie décimale
lami20j@debian:~/trash$ cat ccm18_incrementerfloat.c #include<stdio.h> int main() { int PartieEntiere; int PartieDecimale; double N; int i; printf("entrer votre code secret decimal\n"); scanf("%lf", &N); PartieEntiere = N; PartieDecimale = (N - PartieEntiere) * 100; printf("Nombre : %.2lf\nPartie entière : %d\nPartie decimale : %d\n", N,PartieEntiere,PartieDecimale); for(i=1;i<=PartieEntiere;++i) printf("%d ",i); printf("\n"); for(i=1;i<=PartieDecimale;++i) printf("%d ",i); printf("\n"); return 0; } lami20j@debian:~/trash$ gcc ccm18_incrementerfloat.c lami20j@debian:~/trash$ ./a.out entrer votre code secret decimal 5.11 Nombre : 5.11 Partie entière : 5 Partie decimale : 11 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11
oui mais en fait le but du programme on va dire ca sera de chercher un nombre decimale par exemple 12345.1234567
et je n'ai pas tres bien compris ce qu'il se passait dans ton code car en plus si je marque le nombre 12343.456342 il ne me donne pas la bonne reponse
et par exemple en console est-ce que ca serait possible de separer celle-ci en deux colones et que ca fasse cela :
1 1
2 2
3 4
. .
... ...
12343 456342
//apres assembler c'est deux nombre pour former le nombre decimal 12343.456342
je ne sais pas si je suis tres claire mais bon
et ps : comment faire pour que l'ordi puisse generer un nombre aleatoire decimale
merci
et je n'ai pas tres bien compris ce qu'il se passait dans ton code car en plus si je marque le nombre 12343.456342 il ne me donne pas la bonne reponse
et par exemple en console est-ce que ca serait possible de separer celle-ci en deux colones et que ca fasse cela :
1 1
2 2
3 4
. .
... ...
12343 456342
//apres assembler c'est deux nombre pour former le nombre decimal 12343.456342
je ne sais pas si je suis tres claire mais bon
et ps : comment faire pour que l'ordi puisse generer un nombre aleatoire decimale
merci
Re,
Mon code n'était qu'un exemple pour 2 décimales et pour te montrer peut être une piste.
A toi d'adapter.
Voici un autre exemples, mais tu devrais préciser le nombre de decimales
Mon code n'était qu'un exemple pour 2 décimales et pour te montrer peut être une piste.
A toi d'adapter.
Voici un autre exemples, mais tu devrais préciser le nombre de decimales
#include<stdio.h> int main() { int PartieEntiere; int PartieDecimale; double N; int i; int NbrDecimales; int coef = 1; printf("entrer le nombre de decimales : "); scanf("%d", &NbrDecimales); printf("entrer votre code secret decimal :"); scanf("%lf", &N); for(i=0;i<NbrDecimales;++i) coef = 10 * coef; PartieEntiere = N; PartieDecimale = (N - PartieEntiere) * coef; printf("Nombre : %.lf\nPartie entière : %d\nPartie decimale : %d\n", N,PartieEntiere,PartieDecimale); for(i=1;i<=PartieEntiere;++i) printf("%d ",i); printf("\n"); for(i=1;i<=PartieDecimale;++i) printf("%d ",i); printf("\n"); return 0; }
et si l'on ne connait pas le nombre de decimales ???
et comment generer un nombre decimale aleatoire ?
et comment generer un nombre decimale aleatoire ?
Salut,
rand() te renvoie un nombre "aléatoire" entre 0 et RAND_MAX. Donc :
Un petit coup de multiplication par une puissance de 10 et hop, voilà ton nombre décimal.
Pour connaître le nombre de chiffres d'un nombre, une petite boucle while marche très bien.
Par exemple:
rand() te renvoie un nombre "aléatoire" entre 0 et RAND_MAX. Donc :
(double)rand()/RAND_MAXte renvoie entre 0 et 1.
Un petit coup de multiplication par une puissance de 10 et hop, voilà ton nombre décimal.
Pour connaître le nombre de chiffres d'un nombre, une petite boucle while marche très bien.
Par exemple:
int a=12345; while(a>0){ a/=10; i++; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai encore quelques question j'ai compris comment incrementer un nombre decimal le probleme c'est que au lieu de proceder comme ca (admettons qu'il y a deux decimals):
0.99
0.98
0.97
0.96
...........
jusqu'au code par exemple 0.22
et donc comment faire comme cela
0.1
0.2
0.3
0.4
..............................
0.9
0.10
0.11
0.22 le code secret
et completement a par auriez vous juste un exemple de code qui permette de recuperer un saisie numerique et avec des lettres ^^
merci
0.99
0.98
0.97
0.96
...........
jusqu'au code par exemple 0.22
et donc comment faire comme cela
0.1
0.2
0.3
0.4
..............................
0.9
0.10
0.11
0.22 le code secret
et completement a par auriez vous juste un exemple de code qui permette de recuperer un saisie numerique et avec des lettres ^^
merci
Je ne vois vraiment pas où est ton problème.
Les nombres décimaux ne sont pas des bêtes à part en C. Il y a juste quelques précautions à prendre en cas de comparaison.
Une simple boucle while (nb < 0.22) nb++; devrait faire l'affaire.
Un code pour une saisie numérique : double nb; scanf("%lf",&nb);
Un code pour une saisie avec des lettres : char buf[16]; fgets(buf, sizeof buf, stdin)
Cdlt
Les nombres décimaux ne sont pas des bêtes à part en C. Il y a juste quelques précautions à prendre en cas de comparaison.
Une simple boucle while (nb < 0.22) nb++; devrait faire l'affaire.
Un code pour une saisie numérique : double nb; scanf("%lf",&nb);
Un code pour une saisie avec des lettres : char buf[16]; fgets(buf, sizeof buf, stdin)
Cdlt