Langage c mahboul
Fermé
mimou
-
8 nov. 2008 à 11:10
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 8 nov. 2008 à 21:33
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 8 nov. 2008 à 21:33
A voir également:
- Nombre cubique en langage c
- Langage ascii - Guide
- Langage binaire - Guide
- Nombre facile - Télécharger - Outils professionnels
- Pascal langage - Télécharger - Édition & Programmation
- Kahoot gratuit nombre de participants - Forum Réseaux sociaux
9 réponses
Phortitou
Messages postés
221
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
4 décembre 2011
27
8 nov. 2008 à 11:19
8 nov. 2008 à 11:19
Tu dois entrer le nombre pour savoir si c'est un nombre cube? Ou bien tu dois essayer de trouver tous les nombres cube inférieurs à 1000?
Dans le premier cas, tu récupère les 3 chiffres du nombre dans 3 variables différentes et tu crées une 4e variable pour contenir le nombre en entier. Ensuite tu fait ton calcul (a*a*a + b*b*b + c*c*c) et une bête condition pour savoir si c'est égal au nombre en entier (tu vois ce que je veux dire?)
Dans le 2e cas, tu crées 4 variables et une boucle. A la fin de chaque boucle tu incrémentes 2 variables, celle qui contient le nombre en entier et celle qui contient les unités, sauf si celle contenant les unités dépasse 9, dans ce cas tu remets les unités à 0 et tu incrémentes la variable des dizaines, sauf si elle dépasse 9, dans ce cas tu fais pareil, mais avec les centaines.
Je sais pas si j'ai été clair. Je sais pas si tu fais ça pour tes cours ou pour le plaisir, mais si tu fais ça pour tes cours, c'est mieux qu'on fasse pas le code pour toi.
J'ai plus fait de C depuis longtemps, il existe surement une méthode plus simple, mais si jamais tu as encore des questions, tu peux me contacter, mais c'est à tes risques et périls!
Dans le premier cas, tu récupère les 3 chiffres du nombre dans 3 variables différentes et tu crées une 4e variable pour contenir le nombre en entier. Ensuite tu fait ton calcul (a*a*a + b*b*b + c*c*c) et une bête condition pour savoir si c'est égal au nombre en entier (tu vois ce que je veux dire?)
Dans le 2e cas, tu crées 4 variables et une boucle. A la fin de chaque boucle tu incrémentes 2 variables, celle qui contient le nombre en entier et celle qui contient les unités, sauf si celle contenant les unités dépasse 9, dans ce cas tu remets les unités à 0 et tu incrémentes la variable des dizaines, sauf si elle dépasse 9, dans ce cas tu fais pareil, mais avec les centaines.
Je sais pas si j'ai été clair. Je sais pas si tu fais ça pour tes cours ou pour le plaisir, mais si tu fais ça pour tes cours, c'est mieux qu'on fasse pas le code pour toi.
J'ai plus fait de C depuis longtemps, il existe surement une méthode plus simple, mais si jamais tu as encore des questions, tu peux me contacter, mais c'est à tes risques et périls!
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
329
8 nov. 2008 à 11:15
8 nov. 2008 à 11:15
Salut Mimou,
Ce n'est pas très compliqué, il suffit d'écrire une boucle de 0 à 1000 dans laquelle tu vas faire un calcul :
- calculer la somme des cubes de tous les digits
- une fois cette somme calculée, tu la compares avec la valeur de l'itérateur, si c'est égal tu affiche l'itérateur
Bon courage pour l'implémentation,
Ce n'est pas très compliqué, il suffit d'écrire une boucle de 0 à 1000 dans laquelle tu vas faire un calcul :
- calculer la somme des cubes de tous les digits
- une fois cette somme calculée, tu la compares avec la valeur de l'itérateur, si c'est égal tu affiche l'itérateur
Bon courage pour l'implémentation,
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
329
>
mimou
8 nov. 2008 à 11:56
8 nov. 2008 à 11:56
Non mimou, ce n'est pas bon.
Déjà il faut que tu te replonges dans la syntaxe du C, sinon ça ne fonctionnera jamais:
- la comparaison c'est == et non =
- dans le for, les séparateurs sont des ; et non des ,
- ...
Ensuite, ce n'est pas le nombre au cube qu'il faut calculer, mais la somme de tous ses digits.
Pour réaliser ceci, je pense que le plus simple c'est d'utiliser sprintf() pour stocker tous les chiffres composant ton nombre dans des variable, et d'itérer sur ces variables pour les élever à la puissance 3 et les sommer.
Déjà il faut que tu te replonges dans la syntaxe du C, sinon ça ne fonctionnera jamais:
- la comparaison c'est == et non =
- dans le for, les séparateurs sont des ; et non des ,
- ...
Ensuite, ce n'est pas le nombre au cube qu'il faut calculer, mais la somme de tous ses digits.
Pour réaliser ceci, je pense que le plus simple c'est d'utiliser sprintf() pour stocker tous les chiffres composant ton nombre dans des variable, et d'itérer sur ces variables pour les élever à la puissance 3 et les sommer.
Phortitou
Messages postés
221
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
4 décembre 2011
27
8 nov. 2008 à 11:41
8 nov. 2008 à 11:41
Je vois pas trop ce que tu veux faire avec ce code. Tu peux détailler un peu?
Si t'es en ligne mnt et que t'as msn: claquettes@hotmail.com
Si t'es en ligne mnt et que t'as msn: claquettes@hotmail.com
Phortitou
Messages postés
221
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
4 décembre 2011
27
8 nov. 2008 à 11:49
8 nov. 2008 à 11:49
Okay, je vais essayer de faire ça. Faut juste que tu me précises quelques trucs. Tu veux que l'utilisateur entre un nombre à vérifier? Ou tu veux trouver tous les nombres cube jusqu'à mille? Et me faut ton mail!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Phortitou
Messages postés
221
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
4 décembre 2011
27
8 nov. 2008 à 12:10
8 nov. 2008 à 12:10
#include <stdio.h> #include <stdlib.h> int main() { long unite; long dizaine; long centaine; long i = 100; printf("Les nombres:\n"); while(i < 1000) { centaine = i/100; dizaine = i/10 - centaine; unite = i - (centaine + dizaine); if(i == (unite*unite*unite + dizaine*dizaine*dizaine + centaine*centaine*centaine)) { printf("%ld\n", i); } i++; } printf("Sont des nombres cubes!"); return 0; }
Essaie ça
merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
Phortitou
Messages postés
221
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
4 décembre 2011
27
8 nov. 2008 à 12:22
8 nov. 2008 à 12:22
ça marche pas attend, j'ai fait une erreur!
Phortitou
Messages postés
221
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
4 décembre 2011
27
8 nov. 2008 à 12:29
8 nov. 2008 à 12:29
#include <stdio.h> #include <stdlib.h> int main() { printf("Les nombres:\n"); long centaine; long dizaine; long unite; for(centaine = 1; centaine < 10; centaine++) { for(dizaine = 0; dizaine < 10; dizaine++) { for(unite = 0; unite < 10; unite++) { if(((centaine*100) + (dizaine*10) + unite) == ((centaine*centaine*centaine) + (dizaine*dizaine*dizaine) + (unite*unite*unite))) { printf("%ld%ld%ld\n", centaine, dizaine, unite); } } } } printf("Sont des nombres cubes!"); return 0; }
VOILA CE CODE MARCHE!!!!
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
329
8 nov. 2008 à 12:34
8 nov. 2008 à 12:34
Et donc, juste par curiosité, quels sont les nombres concernés?
Cordialement,
Cordialement,
Phortitou
Messages postés
221
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
4 décembre 2011
27
8 nov. 2008 à 13:06
8 nov. 2008 à 13:06
Alors tu prends ce code, tu compiles... :P
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
329
8 nov. 2008 à 13:09
8 nov. 2008 à 13:09
C'était justement pour éviter de faire ça que je posais la question :D
Cordialement
Cordialement
saly_inf
Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008
4
8 nov. 2008 à 13:17
8 nov. 2008 à 13:17
salut..
ce pgm peut rependre à ta queqtion
j'ai essayé et c bon
ce pgm peut rependre à ta queqtion
#include <stdio.h> #include <stdlib.h> #include <CONIO.H> #include<iostream.H> #include<MATH.H> #include<COMPLEX.H> int main() { clrscr(); long unite; long dizaine; long centaine; long i = 100; printf("Les nombres:\n"); while(i < 1000) { centaine = div(i,100).quot; dizaine = div((i- centaine*100),10).quot; unite = i-(centaine*100)-(dizaine*10); if(i == pow(unite,3) +pow(dizaine,3) +pow(centaine,3)) { printf("%ld\n", i); } i++; } printf("Sont des nombres cubes!"); getch(); }
j'ai essayé et c bon
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
saly_inf
Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008
8 nov. 2008 à 13:30
8 nov. 2008 à 13:30
Ce n'est pas conseillé de mélanger les bibliothèques du C avec ceux du C++ (stdio avec iostream, surtout quand on s'en sert pas). Attention, à ne pas mettre de majuscules aux noms des bibliothèques. Ton code n'est pas du tout portable.
Voici un code portable, et bien plus léger :
Cdlt
Voici un code portable, et bien plus léger :
#include <stdio.h> int main(void){ for(int i=0;i<10;i++) for(int j=0;j<10;j++) for(int k=0;k<10;k++) if(i*i*i+j*j*j+k*k*k==i*100+j*10+k) printf("%d%d%d\n",i,j,k); return 0; }
Cdlt
saly_inf
Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008
4
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
8 nov. 2008 à 13:53
8 nov. 2008 à 13:53
salut fiddy
c vraiment portable , aussi une solution trés intéligente de ta part et j'ai vu que c pas la première fois ...
ta sol est meilleure que la mienne...concernant les biblio je ne comprend pas grande chose
@+..
c vraiment portable , aussi une solution trés intéligente de ta part et j'ai vu que c pas la première fois ...
ta sol est meilleure que la mienne...concernant les biblio je ne comprend pas grande chose
@+..
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
saly_inf
Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008
8 nov. 2008 à 14:09
8 nov. 2008 à 14:09
Ce que je voulais dire par "non portable", c'est que tu utilises une bibliothèque conio.h qui ne fait pas partie du C standard. De plus iostream.h, c'est plutôt du C++ (cout, cin et cie).
Mais, bon tant que ça marche, c'est le principal ;)
Mais, bon tant que ça marche, c'est le principal ;)
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
8 nov. 2008 à 21:24
8 nov. 2008 à 21:24
Je ne parlais pas de plate-formes mais des fonctions des bibliothèques.
Par exemple, stdlib va contenir tout ce qui est allocation, etc.
Par exemple, stdlib va contenir tout ce qui est allocation, etc.
saly_inf
Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008
4
8 nov. 2008 à 21:31
8 nov. 2008 à 21:31
d'accord..merci pour tes repenses serieuses...et excuses mois autrefois.
@+..
@+..
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
saly_inf
Messages postés
44
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
29 décembre 2008
8 nov. 2008 à 21:33
8 nov. 2008 à 21:33
Tu n'as pas à t'excuser ;)
8 nov. 2008 à 11:34