Ĺadny brzuch
jak napisac program (oczywiscie w c++), ktory bedzie pokazywal z ilu cyfr sklada sie podana liczba naturlna, moze ktos wie z jakich funkcji trzeba tu skorzystac?? jesli tak to prosze o pomoc <_<
Użytkownik Hunt3r edytował ten post 16 marzec 2006, 09:28
Jest więcej możliwości, ale najprościej będzię uzyć itoa, a następnie strlen na wyniku.
Możesz, też dzielić liczbę przez 10 aż dojdziesz do zera (pamiętaj o zliczaniu dzieleń - to będzie wynik).
Jest więcej możliwości, ale najprościej będzię uzyć itoa, a następnie strlen na wyniku.
W sumie itoa nie jest w standardzie, więc lepiej będzie użyć sprintf.
Na przykład tak:
#include <stdlib.h> int main() { Â int liczba; Â char tekst[50] = {}; Â printf("Podaj liczbe naturalna:\n"); Â scanf("%i", &liczba); Â sprintf(tekst, "%i", liczba); Â printf("Ilosc cyfr w podanej liczbie to %i.\n", strlen(tekst)); Â return 0; }
Drugi sposób:
#include <stdlib.h> int main() { int liczba, cyfry = 0; printf("Podaj liczbe naturalna:\n"); scanf("%i", &liczba); while (liczba) { liczba /= 10; cyfry++; } printf("Ilosc cyfr w podanej liczbie to %i.\n", cyfry); return 0; }
Użytkownik Chmurek edytował ten post 16 marzec 2006, 15:41
jak napisac program (oczywiscie w c++), ktory bedzie pokazywal z ilu cyfr sklada sie podana liczba naturlna, moze ktos wie z jakich funkcji trzeba tu skorzystac?? jesli tak to prosze o pomoc <_<
Samo liczenie logarytmu jest dość powolne, ale w sumie można ułożyć algorytm, którzy sprawdzałby po prostu w jakim przedziale znajduje się liczba. Najpierw sprawdzałby czy moduł z niej jest mniejszy od 10, jeśli nie to czy mniejsz y od 10*10, jeśli nie to czy od 10*10*10 i tak dalej.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Użytkownik Hunt3r edytował ten post 16 marzec 2006, 09:28
Jest więcej możliwości, ale najprościej będzię uzyć itoa, a następnie strlen na wyniku.
Możesz, też dzielić liczbę przez 10 aż dojdziesz do zera (pamiętaj o zliczaniu dzieleń - to będzie wynik).
Jest więcej możliwości, ale najprościej będzię uzyć itoa, a następnie strlen na wyniku.

W sumie itoa nie jest w standardzie, więc lepiej będzie użyć sprintf.
Na przykład tak:
#include <stdlib.h> int main() { Â int liczba; Â char tekst[50] = {}; Â printf("Podaj liczbe naturalna:\n"); Â scanf("%i", &liczba); Â sprintf(tekst, "%i", liczba); Â printf("Ilosc cyfr w podanej liczbie to %i.\n", strlen(tekst)); Â return 0; }
Drugi sposób:
#include <stdlib.h> int main() { int liczba, cyfry = 0; printf("Podaj liczbe naturalna:\n"); scanf("%i", &liczba); while (liczba) { liczba /= 10; cyfry++; } printf("Ilosc cyfr w podanej liczbie to %i.\n", cyfry); return 0; }
Użytkownik Chmurek edytował ten post 16 marzec 2006, 15:41
jak napisac program (oczywiscie w c++), ktory bedzie pokazywal z ilu cyfr sklada sie podana liczba naturlna, moze ktos wie z jakich funkcji trzeba tu skorzystac?? jesli tak to prosze o pomoc <_<

Samo liczenie logarytmu jest dość powolne, ale w sumie można ułożyć algorytm, którzy sprawdzałby po prostu w jakim przedziale znajduje się liczba. Najpierw sprawdzałby czy moduł z niej jest mniejszy od 10, jeśli nie to czy mniejsz y od 10*10, jeśli nie to czy od 10*10*10 i tak dalej.