en cherchant sur le forum j ai trouver ca : int number_of_digits= 1 +(int) log10(abs(a)); qui mest bien util.
l ennonce du pb est de crer une fonction int digit( int n, int k)
qui renvoie le chiffre d un nombre.
exemple :
digit(5642,0) = 2
digit(5645,2) = 6
j ai fait ca mais le compilo memerde pour la conversion de int en double pour log10.
Code :
- #include <iostream>
- #include <cstdlib>
- #include <cmath>
- using namespace std;
- int digit(int n, int k) {;
- //double a=n;
- int number_of_digits= 1 +(int) log10(abs(a));
- char buffer [number_of_digits];
- //int b=a;
- itoa (n,buffer,10);
- return n[number_of_digits-k];
- }
- int main() {
- char answer;
- double a,b;
- cout << "Enter your number : ";
- cin >>a;
- cout << "Which digit : ";
- cin >>b;
- cout << "Result : " << digit(a,b) << "/n";
- cout <<"quit ? [y/n]";
- cin >> answer;
- if (answer!='y') {
- main(); }
- }
|
j ai regarder du cote conversion int en double et vice versa, y apas uen autre methode ??
merci