Langage c mahboul
mimou
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
bonjour tot le monde svp aidez moi pou resoudre ce exercice:ecrire un programma qui permet d'afficher les nombres cubes inferieur a1000.un nbr cube est un nbr dont la somme de cube de ses chifres egale a se nombre .
exemple:153=1^3+5^3+3^3
langage c.merci en avance
exemple:153=1^3+5^3+3^3
langage c.merci en avance
A voir également:
- Nombre cubique en langage c
- Langage ascii - Guide
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
9 réponses
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!
mimou
merci phortitou
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,
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.
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
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#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
#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!!!!
Alors tu prends ce code, tu compiles... :P
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
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