Bonjour!

Je suis confronté à un problème relativement idiot, mais je ne comprends pas pourquoi ca ne fonctionne pas!

Je cherche à obtenir un certain élément d'un nombre. Par exemple, je cherche à obtenir le 3ème élément de 3215, et j'obtiendrai 2.

J'ai écrit la fonction suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
int get(int number, int element)
{
    return (number / ((int) pow(10,element))) % 10;
}

Elle fonctionne parfaitement, sauf dans certains cas où elle bug complétement, sans que je sache pourquoi.

Par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int get(int number, int element)
{
    return (number / ((int) pow(10,element))) % 10;
}
 
 
int main(void)
{
    printf("%d ", get(3125, 2));
    printf("%d ", get(3125, 1));
    printf("%d ", get(3125, 4));
    printf("%d ", get(0, 0));
    printf("%d ", get(3005, 2));
    printf("%d ", get(3005, 0));
 
    return 0;
}
donnera:

1 2 0 0 0 5
Mais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
printf("%d ", get(12034, 2));
donnera:
1
D'où peut venir le problème?

Je ne comprends vraiment pas :/