z ilu cyfr składa się liczba?

0

jak w C++ sprawdzić z ilu cyfr składa się wpisana liczba? wie ktoś?
[email protected]

0

int(1+(log(abs(liczba))/log(10)));

0

wielkie dzięki sam bym na to chyba nigdy nie wpadł

0

ale mam małe zastrzezenia. Bo ten wzor widze odnosi sie tylko do typu int i przy wiekszej liczbie "sie myli" czy ktos cos na to moze poradzic? zebym mogl liczyc cyfry poprawnie i w wiekszych liczbach? moze jest jakas funkcja do tego?

0
inline unsigned ile_cyfr(unsigned long liczba)
{
  return log10l(liczba) + 1;
}
0

Wez jej modul, wrzuc ja do lancucha i zbadaj jego dlugosc. Zrob poprawke na ewentualna kropke dziesietna.

0

wystarczy pozmieniac odpowiednio dla:
int, float, double

//---------------------------------------------------------------------------
#include <iostream>
using namespace std;
int ile(int liczba)
{
int suma=0;

while(liczba)
{
liczba=liczba/10;
suma++;
}
return suma;
}

int main(int argc, char* argv[])
{

                int a;
                cout<<"podaj a=";
                cin>>a;
                int x;
                x=ile(a);
                cout<<"zawiera:"<<x<<endl;

system("pause");
        return 0;
}
//---------------------------------------------------------------------------

A dla liczby typu np.

121243292083928928492383284923759279732592379873295

proponuje stos zastosować :) i bez problemu bedzie

0

gesiek20, Twoj algorytm zdecydowanie nie bedzie dzialal dla typow zmiennoprzecinkowych:(

1 użytkowników online, w tym zalogowanych: 0, gości: 1