Witam
Potrzebuje pomocy w wyciągnięciu powiedzmy ostatniej lub przed ostatniej danej (cyfry) z ciagu liczb powiedzmy: 48758686.
Nie wiem jak to zrobić ktoś pomoże?
grom86 napisał(a):
Witam
Potrzebuje pomocy w wyciągnięciu powiedzmy ostatniej lub przed ostatniej danej (cyfry) z ciagu liczb powiedzmy: 48758686.
Nie wiem jak to zrobić ktoś pomoże?
Możesz użyć funkcji to_string i operować na stringu a póżniej użyć funkcji atoi
Ostatnia cyfra liczby, powiedzmy, n
, to:
n % 10
,
a przedostatnia (o ile liczba jest co najmniej dwucyfrowa, ale to łatwo sprawdzić: n / 10 > 0
, gdzie /
- dzielenie w integerach) to:
(n / 10) % 10
.
I tak dalej, w sumie; oczywiście, zakładając, że to co Określiłeś, jako "ciąg liczb" to po prostu liczba, int. Jeśli to string, to inna bajka, ale pytanie wtedy trochę bez sensu, bo byłoby:
Jak znaleźć ostatni lub przedostatni znak w ciągu.
pomogło bardzo.
wypisuje ostatnią i przed.
dokładnie n int
A powiedz następna z kolei
powiedzmy 503542674
podaj proszę dla kilku kolejnych pozwoli mi to dokładniej zrozumieć z góry ci dziękuje
Użyj pętli i wykonaj tyle cykli, żeby wyświetlić wartość z żądanej pozycji.
#include <stdio.h>
int main(void)
{
int n = 1234567;
int answer = 0;
int i, m;
for (i = 0, m = n; m > 0 && i < 3; m /= 10, ++i) {
answer = m % 10;
}
printf("%d", answer);
return 0;
}
Trzecia od końca [cyfra liczby n
]:
(n / 100) % 10
Czwarta:
(n / 1000) % 10
.
Widać już wzór, można napisać funkcję, zwracającą k - tą
cyfrę od końca liczby n
:
fun digits_from_end(n, k):
return (n / 10^(k-1)) % 10;