Aide pour pour petit programme en c
Fermé
rem22
Messages postés
10
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
21 mai 2008
-
2 mai 2008 à 21:46
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 - 3 mai 2008 à 17:12
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 - 3 mai 2008 à 17:12
A voir également:
- Aide pour pour petit programme en c
- Programme demarrage windows 10 - Guide
- Petit 1 comme ² ✓ - Forum Bureautique
- Programme (x86) ✓ - Forum Windows
- Ecrire les chiffres en petits caractères ✓ - Forum Windows
8 réponses
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
2 mai 2008 à 21:52
2 mai 2008 à 21:52
ben poste ton code deja pour voir...
rem22
Messages postés
10
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
21 mai 2008
2 mai 2008 à 21:53
2 mai 2008 à 21:53
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long nombre =0;
long nombrede2 =0;
long nombrede3 =0;
long nombrede5 =0;
long nombrede7 =0;
long nombrede11 =0;
long nombrede13 =0;
long nombrede17 =0;
long nombrede19 =0;
long nombrede23 =0;
long nombrede29 =0;
long nombredebase =0;
printf("inscrivez un nombre \n");
scanf("%ld",&nombre);
nombre=nombredebase;
while(nombre%2==0)
{
nombre= nombre/2;
nombrede2 ++;
}
while(nombre%3==0)
{
nombre= nombre/3;
nombrede3 ++;
}
while(nombre%5==0)
{
nombre= nombre/5;
nombrede5 ++;
}
while(nombre%7==0)
{
nombre= nombre/7;
nombrede7 ++;
}
while(nombre%11==0)
{
nombre= nombre/11;
nombrede11 ++;
}
while(nombre%13==0)
{
nombre= nombre/13;
nombrede13 ++;
}
while(nombre%17==0)
{
nombre= nombre/17;
nombrede17 ++;
}
while(nombre%19==0)
{
nombre= nombre/19;
nombrede19 ++;
}
while(nombre%23==0)
{
nombre= nombre/23;
nombrede23 ++;
}
while(nombre%29==0)
{
nombre= nombre/29;
nombrede29 ++;
}
printf("il y a\n")
if(nombrede2 > 0)
{
printf("%ld\n" fois ",nombrede2);
}
else if(nombrede3>0)
{
printf("%ld\n" fois ",nombrede3);
}
else if(nombrede5>0)
{
printf("%ld\n" fois ",nombrede5) ;
}
else if(nombrede7>0)
{
printf("%ld\n" fois ",nombrede7) ;
}
else if(nombrede11>0)
{
printf("%ld\n" fois ",nombrede11) ;
}
else if(nombrede13>0)
{
printf("%ld\n" fois ",nombrede13) ;
}
else if(nombrede17>0)
{
printf("%ld\n" fois ",nombrede17) ;
}
else if(nombrede19>0)
{
printf("%ld\n" fois ",nombrede19);
}
else if(nombrede23>0)
{
printf("%ld\n" fois ",nombrede23) ;
}
else if(nombrede99>0)
{
printf("%ld\n" fois ",nombrede29);
}
printf("dans %ld",nombredebase);
system("PAUSE");
return 0;
}
#include <stdlib.h>
int main(int argc, char *argv[])
{
long nombre =0;
long nombrede2 =0;
long nombrede3 =0;
long nombrede5 =0;
long nombrede7 =0;
long nombrede11 =0;
long nombrede13 =0;
long nombrede17 =0;
long nombrede19 =0;
long nombrede23 =0;
long nombrede29 =0;
long nombredebase =0;
printf("inscrivez un nombre \n");
scanf("%ld",&nombre);
nombre=nombredebase;
while(nombre%2==0)
{
nombre= nombre/2;
nombrede2 ++;
}
while(nombre%3==0)
{
nombre= nombre/3;
nombrede3 ++;
}
while(nombre%5==0)
{
nombre= nombre/5;
nombrede5 ++;
}
while(nombre%7==0)
{
nombre= nombre/7;
nombrede7 ++;
}
while(nombre%11==0)
{
nombre= nombre/11;
nombrede11 ++;
}
while(nombre%13==0)
{
nombre= nombre/13;
nombrede13 ++;
}
while(nombre%17==0)
{
nombre= nombre/17;
nombrede17 ++;
}
while(nombre%19==0)
{
nombre= nombre/19;
nombrede19 ++;
}
while(nombre%23==0)
{
nombre= nombre/23;
nombrede23 ++;
}
while(nombre%29==0)
{
nombre= nombre/29;
nombrede29 ++;
}
printf("il y a\n")
if(nombrede2 > 0)
{
printf("%ld\n" fois ",nombrede2);
}
else if(nombrede3>0)
{
printf("%ld\n" fois ",nombrede3);
}
else if(nombrede5>0)
{
printf("%ld\n" fois ",nombrede5) ;
}
else if(nombrede7>0)
{
printf("%ld\n" fois ",nombrede7) ;
}
else if(nombrede11>0)
{
printf("%ld\n" fois ",nombrede11) ;
}
else if(nombrede13>0)
{
printf("%ld\n" fois ",nombrede13) ;
}
else if(nombrede17>0)
{
printf("%ld\n" fois ",nombrede17) ;
}
else if(nombrede19>0)
{
printf("%ld\n" fois ",nombrede19);
}
else if(nombrede23>0)
{
printf("%ld\n" fois ",nombrede23) ;
}
else if(nombrede99>0)
{
printf("%ld\n" fois ",nombrede29);
}
printf("dans %ld",nombredebase);
system("PAUSE");
return 0;
}
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
3 mai 2008 à 00:01
3 mai 2008 à 00:01
alor ton programme est loin d'etre simplifié puisque tu repete plusieurs fois la meme chose...
mais essaye comme ça , ça devrrait marcher
mais essaye comme ça , ça devrrait marcher
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { long nombre =0; long nombrede2 =0; long nombrede3 =0; long nombrede5 =0; long nombrede7 =0; long nombrede11 =0; long nombrede13 =0; long nombrede17 =0; long nombrede19 =0; long nombrede23 =0; long nombrede29 =0; long nombredebase =0; int i,nbr_fois=0; printf("inscrivez un nombre \n"); scanf("%ld",&nombre); nombredebase=nombre; while(nombre%29==0) { nombre= nombre/29; nombrede29 ++;nbr_fois++; } while(nombre%23==0) { nombre= nombre/23; nombrede23 ++;nbr_fois++; } while(nombre%19==0) { nombre= nombre/19; nombrede19 ++;nbr_fois++; } while(nombre%17==0) { nombre= nombre/17; nombrede17 ++;nbr_fois++; } while(nombre%13==0) { nombre= nombre/13; nombrede13 ++;nbr_fois++; } while(nombre%11==0) { nombre= nombre/11; nombrede11 ++;nbr_fois++; } while(nombre%7==0) { nombre= nombre/7; nombrede7 ++;nbr_fois++; } while(nombre%5==0) { nombre= nombre/5; nombrede5 ++;nbr_fois++; } while(nombre%3==0) { nombre= nombre/3; nombrede3 ++;nbr_fois++; } while(nombre%2==0) { nombre= nombre/2; nombrede2 ++;nbr_fois++; } nbr_fois--; printf("nombre decompose en produit de nombre premier: "); if(nombrede2 > 0) { for(i=0;i<nombrede2;i++){ printf("2 "); if(nbr_fois!=0) {printf("X ");nbr_fois--;}} } if(nombrede3 > 0) { for(i=0;i<nombrede3;i++){ printf("3 "); if(nbr_fois!=0) {printf("X ");nbr_fois--;}} } if(nombrede5 > 0) { for(i=0;i<nombrede5;i++){ printf("5 "); if(nbr_fois!=0) {printf("X ");nbr_fois--;}} } if(nombrede7 > 0) { for(i=0;i<nombrede7;i++){ printf("7 "); if(nbr_fois!=0) {printf("X ");nbr_fois--;}} } if(nombrede11 > 0) { for(i=0;i<nombrede11;i++){ printf("11 "); if(nbr_fois!=0) {printf("X ");nbr_fois--;}} } if(nombrede13 > 0) { for(i=0;i<nombrede13;i++){ printf("13 "); if(nbr_fois!=0) {printf("X ");nbr_fois--;}} } if(nombrede17 > 0) { for(i=0;i<nombrede17;i++){ printf("17 "); if(nbr_fois!=0) {printf("X ");nbr_fois--;}} } if(nombrede19 > 0) { for(i=0;i<nombrede19;i++){ printf("19 "); if(nbr_fois!=0) {printf("X ");nbr_fois--;}} } if(nombrede23 > 0) { for(i=0;i<nombrede23;i++){ printf("23 "); if(nbr_fois!=0) {printf("X ");nbr_fois--;}} } if(nombrede29 > 0) { for(i=0;i<nombrede29;i++){ printf("29 "); if(nbr_fois!=0) {printf("X ");nbr_fois--;}} } printf("= %ld\n",nombredebase); system("PAUSE"); return 0; }
rem22
Messages postés
10
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
21 mai 2008
3 mai 2008 à 09:09
3 mai 2008 à 09:09
Salut,
a propos de ton amélioration:
-Pourquoi est-ce que tu as mis les nombres premiers du plus grand au plus petit?
-Je ne comprends pas très bien la partie avec les "for" , "nbr_fois" et "i" , pourrais-tu me l'expliquer?
Et:
-Qu'est-ce qui ne jouait pas à ma version?
Comment pourrait-on la raccourcir?
merci
a propos de ton amélioration:
-Pourquoi est-ce que tu as mis les nombres premiers du plus grand au plus petit?
-Je ne comprends pas très bien la partie avec les "for" , "nbr_fois" et "i" , pourrais-tu me l'expliquer?
Et:
-Qu'est-ce qui ne jouait pas à ma version?
Comment pourrait-on la raccourcir?
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
rem22
Messages postés
10
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
21 mai 2008
3 mai 2008 à 11:11
3 mai 2008 à 11:11
Salut,
Tant qu'on y est j'aurais deux autres questions:
1)Si je veux pouvoir un peu essayer de comprendre les codes sources des programmes linux,et même essayer de changer une ou deux lignes,je peux le faire avec le c ?
2)j'ai installé code::blocks et maintenant quand je veux le lancer il me met :
Deleted stale lock file '/home/bottinelli/Code::Blocks-bottinelli'.
et une autre fenêtre en anglais qui me dit -je crois-qu'un report debug a été lancè et qu'ils sont désolé(et pleins d'autres choses en anglais),
je ne sais pas comment mettre le screen que j'ai fait sur le message,
en tous cas je n'arrive pas à ouvrir code::blocks
si quelqu'un a une idée
merci
Tant qu'on y est j'aurais deux autres questions:
1)Si je veux pouvoir un peu essayer de comprendre les codes sources des programmes linux,et même essayer de changer une ou deux lignes,je peux le faire avec le c ?
2)j'ai installé code::blocks et maintenant quand je veux le lancer il me met :
Deleted stale lock file '/home/bottinelli/Code::Blocks-bottinelli'.
et une autre fenêtre en anglais qui me dit -je crois-qu'un report debug a été lancè et qu'ils sont désolé(et pleins d'autres choses en anglais),
je ne sais pas comment mettre le screen que j'ai fait sur le message,
en tous cas je n'arrive pas à ouvrir code::blocks
si quelqu'un a une idée
merci
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
3 mai 2008 à 15:51
3 mai 2008 à 15:51
-Pourquoi est-ce que tu as mis les nombres premiers du plus grand au plus petit?
en fait comme ça parce que je trouve ça plus propre mais bon je pense que ça n'a pas trop d'importance en partant du plus petite ça devrait marché aussi
-Je ne comprends pas très bien la partie avec les "for" , "nbr_fois" et "i" , pourrais-tu me l'expliquer?
en fait cette partie c'est juste pour calculer le nombre de signe multiplier X et bien les placer lors du resultat, comme ça on calcule le nombre de signe multiplier qui vaut le nombre de nombre premier - 1 ensuite avec le for et nbr_fois je peux placer le signe X entre chaque nombre premier qui décompose le nombre
-Qu'est-ce qui ne jouait pas à ma version?
dans ta version deja tu avais des erreurs de syntaxe dans tes printf
ex:
ensuite apres que l'utilisateur est donné une valeur a nombre avec le scanf tu fais
Comment pourrait-on la raccourcir?
tu pourrais utiliser des tableaux pour stocker les nombres premiers et les nombredex ainsi ça t'eviterait d'avoir plusieur boucle while et if une ou deux suffirait...
Si je veux pouvoir un peu essayer de comprendre les codes sources des programmes linux,et même essayer de changer une ou deux lignes,je peux le faire avec le c ?
oui tout a fait le kernel de linux est meme ecrit en C
et pour code::blocs moi je l'utilise sur windows mais sur linux j'utilise gcc mais si tu veux comme meme l'installer sur linux voici un petit lien pour l'installer
en fait comme ça parce que je trouve ça plus propre mais bon je pense que ça n'a pas trop d'importance en partant du plus petite ça devrait marché aussi
-Je ne comprends pas très bien la partie avec les "for" , "nbr_fois" et "i" , pourrais-tu me l'expliquer?
en fait cette partie c'est juste pour calculer le nombre de signe multiplier X et bien les placer lors du resultat, comme ça on calcule le nombre de signe multiplier qui vaut le nombre de nombre premier - 1 ensuite avec le for et nbr_fois je peux placer le signe X entre chaque nombre premier qui décompose le nombre
-Qu'est-ce qui ne jouait pas à ma version?
dans ta version deja tu avais des erreurs de syntaxe dans tes printf
ex:
printf("%ld\n" fois ",nombrede29);tu as mis des guillements a l'interieur de guillemets on ne peux pas faire ça...
ensuite apres que l'utilisateur est donné une valeur a nombre avec le scanf tu fais
nombre=nombredebase;donc la tu donnes a nombre la valeur de nombredebase soit 0 il faudrait plutot faire
nombredebase=nombre;
Comment pourrait-on la raccourcir?
tu pourrais utiliser des tableaux pour stocker les nombres premiers et les nombredex ainsi ça t'eviterait d'avoir plusieur boucle while et if une ou deux suffirait...
Si je veux pouvoir un peu essayer de comprendre les codes sources des programmes linux,et même essayer de changer une ou deux lignes,je peux le faire avec le c ?
oui tout a fait le kernel de linux est meme ecrit en C
et pour code::blocs moi je l'utilise sur windows mais sur linux j'utilise gcc mais si tu veux comme meme l'installer sur linux voici un petit lien pour l'installer
rem22
Messages postés
10
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
21 mai 2008
3 mai 2008 à 17:05
3 mai 2008 à 17:05
Merci pour tout.
ça m'a bien aidé.
ça m'a bien aidé.
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
3 mai 2008 à 17:12
3 mai 2008 à 17:12
de rien...
si tu n'as plus de probleme n'oublie pas de mettre ton post en "resolu" ;)
si tu n'as plus de probleme n'oublie pas de mettre ton post en "resolu" ;)