Recherce Fonction C
Résolu/Fermé
A voir également:
- Recherce Fonction C
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - Guide
- Fonction ms dos non valide - Forum Windows 8 / 8.1
8 réponses
Stupeflip
Messages postés
391
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
94
23 févr. 2007 à 15:50
23 févr. 2007 à 15:50
Salut,
Il te suffit de saisir ton nombre en tant que chaine de caractères (%s) au lieu de valeur (%i). Il te suffit alors d'afficher un strlen(ton_nombre_en_%s).
Il te suffit de saisir ton nombre en tant que chaine de caractères (%s) au lieu de valeur (%i). Il te suffit alors d'afficher un strlen(ton_nombre_en_%s).
Le probleme c'est que je doit utiliser les nombre que je recupère pour des calculs donc je ne peux pas utiliser la fonction strlen.
Stupeflip
Messages postés
391
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
94
23 févr. 2007 à 16:36
23 févr. 2007 à 16:36
J'avoue, pas mieux :(
J'ai l'air fin avec mon algo récursif par modulo maintenant :(
J'ai l'air fin avec mon algo récursif par modulo maintenant :(
Stupeflip
Messages postés
391
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
94
23 févr. 2007 à 16:30
23 févr. 2007 à 16:30
Tu peux le faire manuellement mais c'est assez lourd :
Avec une fonction récursive qui fait des modulo sur des tranches de 10,100,1000 etc. Récursive parce qu'elle doit s'appeler elle-même si le résultat est supérieur a 0 (ce qui veut dire que cette tranche là existe). Valeur de retour : la position de la tranche qui équivaut à ce que tu recherches
Avec une fonction récursive qui fait des modulo sur des tranches de 10,100,1000 etc. Récursive parce qu'elle doit s'appeler elle-même si le résultat est supérieur a 0 (ce qui veut dire que cette tranche là existe). Valeur de retour : la position de la tranche qui équivaut à ce que tu recherches
Désolé mais etant vraiment débutant dans la programmation C il faudrait m'expliquer l'utilisation de la fonction sprintf().
Désolé Stupflip mais c'est sur que ta solution est bien trop compliqué pour moi enfin merci quand même.
Désolé Stupflip mais c'est sur que ta solution est bien trop compliqué pour moi enfin merci quand même.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Stupeflip
Messages postés
391
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
94
23 févr. 2007 à 17:26
23 févr. 2007 à 17:26
Alors sprintf fait la même chose que printf, à la différence près qu'il le rentre dans un buffer.
En pratique tu auras un truc genre :
int valeur_chiffree;
char valeur_char[TAILLE];
valeur_chiffree=1234;
sprintf(valeur_char,"%i",valeur_chiffree);
printf("\nTaille : %i\n",strlen(valeur_char));
En pratique tu auras un truc genre :
int valeur_chiffree;
char valeur_char[TAILLE];
valeur_chiffree=1234;
sprintf(valeur_char,"%i",valeur_chiffree);
printf("\nTaille : %i\n",strlen(valeur_char));
Herr Dr von Apfelstrudel
Messages postés
198
Date d'inscription
lundi 29 janvier 2007
Statut
Membre
Dernière intervention
10 février 2010
181
23 févr. 2007 à 19:51
23 févr. 2007 à 19:51
Salut,
peut-être qch comme ça ?
peut-être qch comme ça ?
int nb, nbChiffres; if( nb ) nbChiffres = log10(abs(nb)) + 1; else nbChiffres = 1;
mamiemando
Messages postés
33432
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
16 décembre 2024
7 809
24 févr. 2007 à 03:22
24 févr. 2007 à 03:22
Attention au fait que tout ce qui a été dit avant n'est vrai que s'il s'agit d'entiers positifs. Pour compter le nombre de chiffres on peut faire ainsi :
#include <string.h> #include <ctype.h> #include <stdio.h> unsigned int nb_digits(double d){ unsigned int i,res=0,n; char buffer[255]; unsigned int i,n; sprintf(buffer,"%lf",d); n = strlen(buffer); for(i=0;i<n;++i){ if(isdigit(buffer[i])) ++res; } return res; }