sprawdzenie czy liczba jest dwucyfrowa

0

Witam. Ciekawi mnie czy jest jakiś sposób sprawdzenia, czy liczba jest dwucyfrowa za pomocą chara, czy coś takiego, tak jak np. przy zliczaniu ilości liter w słowie. Nie interesuje mnie rozwiązanie najprostsze, że if liczba>9 lub liczba<100.

1

Jest, Adrianie.

0
adrian.widzew napisał(a):

czy liczba jest dwucyfrowa za pomocą chara
Znaczy char*? To będzie

const char *num = "12";
if(strlen(num) == 2) {}
0

Nie wiem jak rozumiesz "za pomocą chara". Ale jeśli chodzi Ci o to, że char jest jakąś liczbą, jak int (char 'A' == 65) to problem sprowadza się do sprawdzenia czy int jest dwucyfrowy. Na podstawie tego, co napisałeś if liczba>9 lub liczba<100 oraz tego, iż char przyjmuje wartości całkowite wnioskuję, że w naszych rozważaniach przyjmujemy, że sprawdzaną liczą jest liczba całkowita.W innym przypadku rozwiązań jest wiele, w zależności od przyjętych ograniczeń (np. http://b.agilob.net/ile-jest-liczb-dwucyfrowych-i-dlaczego-360/ (art nie mój)). Ale jeśli rozpatrujemy tylko liczby całkowite to istnieją różna sposoby.
Np. dla rozpatrywanej zmiennej x floor(abs(x)/10)!=0 && floor(abs(x)/100)==0 jest spełnione tylko, gdy x jest w podanym przez Ciebie zakresie. Można to sprowadzić do bardziej ogólnej postaci, gdzie n jest oczekiwaną liczbą cyfr w zapisie dziesiętnym ''floor(abs(x)/10(n-1))!=0 && floor(abs(x)/10n)==0", można też to rozwiązać inaczej. Przykładem może być po prostu obliczenie liczby cyfr w systemie dziesiętnym. (x!=0 && (floor(log10(abs(x)))+1)==n)||(x==0 && n==1), tylko trzeba pamiętać, że wrzucenie tego w ifa może dać różne skutki (logarytm z zera), zapis tylko schematyczny.

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