sprawdzenie czy liczba jest dwucyfrowa

sprawdzenie czy liczba jest dwucyfrowa
adrian.widzew
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 149
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.

ŁF
  • Rejestracja: dni
  • Ostatnio: dni
1

Jest, Adrianie.

lukasz1235
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1105
0
adrian.widzew napisał(a):

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

Kopiuj
const char *num = "12";
if(strlen(num) == 2) {}
TA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 45
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.