ilość cyfr w liczbie

0

Od razu zaznaczam że jestem początkujący [wstyd]

Jak sprawdzić ilo cyfrowa jest liczba w zmiennej int??

Dzięki za wszelkie odpowiedzi :d

//pisz sensowne tematy! - m.M

0

Nie, sizeof() wyświetla wynik w bajtach, jezeli chcesz sprawdzic ile ma cyfr int to

#include<stdlib.h>

main()
{
int liczba=999,l_cyfr;
char wpis[10];
itoa(liczba,wpis,10);
l_cyfr=strlen(wpis);
}
0

int n = 999;
int i = 0;
for(; n < 1; n /= 10) i++;

o ile zadziala to w i powinna byc ilosc cyfr... chyba :-|

0

mała poprawka, nie dołączyłem biblioteki <string.h>

0

ew mozna jeszcze sposobem czysto matematycznym, czyli
liczba_cyfr == logarytm przy podstawie k z liczby + 1
gdzie k to system liczbowy w jakim chcesz miec wynik, np 10

mniej wiecej kod przykladowy wygladal by tak:

#include<stdio.h>
#include<math.h>

#define STALA_K 0.0000000001

int
liczba_cyfr( int liczba, int system )
{
  return (int)( ( logl( liczba ) / logl( system ) ) + 1 + STALA_K );
}

int
main( void )
{
  int liczby[ ] = { 9, 99, 999, 9999, 99999, 999999, 9999999, 99999999,
  1, 10, 100, 1000, 10000, 100000, 1000000, 10000000 };
  int s_liczby = sizeof( liczby ) / sizeof( int );
  int i;

  for( i = 0; i < s_liczby; i++ )
  {
    printf( "liczba %i ma cyfr: %i\\n", liczby[i], liczba_cyfr( liczby[i] ) );
  }

  return 0;
}

STALA_K wynika tylko i wylacznie z niedokladnosci floata ;p, wrazie czego wez ja jeszcze troche zmniejsz, tj dodaj wiecej 0 przed 1.. a tak poza tym to dziala dobrze ;>

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