Bonsoir, j'ai quelque questions à vous poser.
Tout d'abord, je voudrais savoir si une fonction qui prends en paramètre un int et retourne son nombre de digits existe.
La raison de cette question est que je souhaite créer une fonction soustraire(int a, int b) et ce sans utiliser l'opérateur '-'. Pour se faire, je dois utiliser la méthode dite du 10 (ou du 9) complément. Je vous fournis un lien avec une explication de la méthode.
http://en.wikipedia.org/wiki/Ten%27s_complement
Pour réaliser cette fonction , je ne sais pas trop par où commencer:
1. connaitre le nbr de digit de a
2. créer le complement
3. trouver le résultat
Pouvez vous me donner des indices sur comment réaliser ces étapes?

2eme question :
si je lis un entier de cette maniere :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
int main(int argc, char *argv[])
{    
        char *pend1 = NULL;
        int nbr1 = (int) strtol(argv[1], &pend1, 10);
            if (*pend1 != 0)
            {
                fprintf(stderr, "ERROR : you have to put natural numbers as parameters\n");
                return 1;
            }
}
le problème est que si je met un nombre relatif, celui-ci est accepté. Pour refusé les nombres relatifs, comment dois-je m'y prendre? Dois-je créer un test du style:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if(strchr(argv[1],'-'))
{
       fprintf(stderr, "ERROR : you have to put natural numbers as parameters\n");
}
ou y a t il un moyen plus simpatique (comme quelquechose à faire sur strtol par exemple).
Merci d'avance,
Jo