Probleme de C
MrMan2009
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
MrMan2009 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
MrMan2009 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Bonjour,
G un problem avec un programme et dont je n'arrive pas a trouver la solution, je suis debutant en C, et notre prof nous a donné un assignmenta faire, le prob est comme suit: " "write a program that reads an integer and determines and prints how many digits in the integer are 7s."
le probleme en francais est: ecrivez en language C un programme qui scanne un nombre entré, et determine combien de 7 sont dans ce nombre, 127737 a trois 7, 122756 en a 1, 1377 en a deux. le probleme c que je ne sait pas exactement comment savoir le nombre de chiffre dans le nombre entré, est ce un 10 chiffre, 9, 8; ou moins ou plus. aidez moi et merci:). voici ce que g pu faire pour 5 chiffre dans le nombre. j'attend vos reponses et merci
#include <stdio.h>
int main()
{
int number, numCopy, factor = 10000, digit, sevens = 0;;
printf( "Enter a 5-digit number: " );
scanf( "%d", &number );
numCopy = number;
while ( factor >= 1 )
{
digit = numCopy / factor;
if ( digit == 7 )
++sevens;
numCopy %= factor;
factor /= 10;
}
printf( "The number %ld has %d seven(s) in it\n", number, sevens );
return 0;
}
Configuration: Windows XP
Firefox 3.0.4
Bonjour,
G un problem avec un programme et dont je n'arrive pas a trouver la solution, je suis debutant en C, et notre prof nous a donné un assignmenta faire, le prob est comme suit: " "write a program that reads an integer and determines and prints how many digits in the integer are 7s."
le probleme en francais est: ecrivez en language C un programme qui scanne un nombre entré, et determine combien de 7 sont dans ce nombre, 127737 a trois 7, 122756 en a 1, 1377 en a deux. le probleme c que je ne sait pas exactement comment savoir le nombre de chiffre dans le nombre entré, est ce un 10 chiffre, 9, 8; ou moins ou plus. aidez moi et merci:). voici ce que g pu faire pour 5 chiffre dans le nombre. j'attend vos reponses et merci
#include <stdio.h>
int main()
{
int number, numCopy, factor = 10000, digit, sevens = 0;;
printf( "Enter a 5-digit number: " );
scanf( "%d", &number );
numCopy = number;
while ( factor >= 1 )
{
digit = numCopy / factor;
if ( digit == 7 )
++sevens;
numCopy %= factor;
factor /= 10;
}
printf( "The number %ld has %d seven(s) in it\n", number, sevens );
return 0;
}
Configuration: Windows XP
Firefox 3.0.4
9 réponses
Salut,
Tu devrais inverser l'algorithme.
Je veux dire que tu fais modulo 10 pour récupérer les unités (si c'est un 7, t'augmentes le compteur). Ensuite tu divises le nombre par facteur, et tu divises le nombre par 10 pour la prochaine itération. Et tu fais ceci tant que le nombre est supérieur à 1.
Cdlt
Tu devrais inverser l'algorithme.
Je veux dire que tu fais modulo 10 pour récupérer les unités (si c'est un 7, t'augmentes le compteur). Ensuite tu divises le nombre par facteur, et tu divises le nombre par 10 pour la prochaine itération. Et tu fais ceci tant que le nombre est supérieur à 1.
Cdlt
mais comment savoir si le num est comosé de 1à chiffres, ou de deux chiffres ou meme de 15 chiffres. j'arriverai pas a l'inclure dans le loop:S.
Comme je t'ai dit, tu n'as pas besoin de savoir si tu inverses ton algorithme.
Tu divises par 10 le nombre défini par l'utilisateur tant qu'il est supérieur à 1. Et pour récupérer le dernier chiffre, tu utilises le modulo 10.
Tu divises par 10 le nombre défini par l'utilisateur tant qu'il est supérieur à 1. Et pour récupérer le dernier chiffre, tu utilises le modulo 10.
mm d'accord :), je crois que j'ai compris, je devrais pas aussi faire un while avec le facteur > num, comme ça s'arrete une fois c plus grand n'est ce as:). merc mon ami.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
est ce que tu peux m'aider en m'ecrivant le prog, car j'ai rien compris dans tout ca:s. et mon algorithme foire sur ce que tu as dit:S. je veux dire la partie du while:S
Je t'écris la partie algorithmique :
Cdlt
input(nb); compteur<- 0; TantQue(nb>0) Faire Si nb % 10 == 7 Alors compteur=compteur+1 FinSi nb = nb/10; FinTantQue
Cdlt
Voilà une version qui cherche l'apparition d'un nombre saisi au clavier :
#include<stdio.h> main() { int nb,i=0,c; printf("saisir le nombre "); scanf("%d",&nb); printf("saisir le nombre a rechercher "); scanf("%d",&c); while(nb>0) { if(nb%10==c) i++; nb=nb/10; } printf("le nombre de %d sont %d",c,i); getchar(); getchar(); }
Bonjour j'ai un probleme avec des exercices de C, voila on me demande d'utiliser un array de 2à nombre, j'entre moi meme les nombre, et le program devrait m'imprimer les chiffres qui n'ont pas ete entré deux fois. pour monsieur Lamij, je n'offense personne, j'ai juste dit ce que je pensais, et ce que je crois me parler plutot gentiment aurai ete siympa de ta part:). on ne se chamaille pas ici. je vien juste demander de l'aide. et c comme ça qu'on m'aide.
le deuxieme program me demande de changer la forme de la date de de 12/12/2009 a 12 decembre 2009, je pense que je devrai utiliser strings mais j'en ai aucune idée apropos des strings. alors s'il vous plait aidez moi. j'en ai vraiment besoin.
le deuxieme program me demande de changer la forme de la date de de 12/12/2009 a 12 decembre 2009, je pense que je devrai utiliser strings mais j'en ai aucune idée apropos des strings. alors s'il vous plait aidez moi. j'en ai vraiment besoin.