Mam mały problem, nawet dwa, bo nie wiedziałem gdzie zadać to pytanie, ale do rzeczy,
co daje ~ w tym zapisie {for(;~scanf("%i",&n);)?
Mógłby mi ktoś wytłumaczyć ?
created
last reply
- 4
replies
- 1.1k
views
- 5
users
- 1
like
- 2
links
Mam mały problem, nawet dwa, bo nie wiedziałem gdzie zadać to pytanie, ale do rzeczy,
co daje ~ w tym zapisie {for(;~scanf("%i",&n);)?
Mógłby mi ktoś wytłumaczyć ?
zdecydowanie lepiej byłoby tak:
for ( ; scanf("%i", &n) == 1; ) { ... }
lub jeszcze lepiej (prościej):
while (scanf("%i", &n) == 1) { ... }
natomiast informację, co to daje najprościej znaleźć w podręczniku C:
jeżeli masz awersję do podręcznika w postaci papierowej, to równie dobrze powie ci to google.pl
Generalnie podpisuje się pod tym co napisał Mariusz, zawsze lepiej samemu dojść do rozwiązania, ale trochę Ci pomogę. To co wkleiłeś to jeden z trików używanych przy skracaniu kodów. Chodzi o to żeby korzystając z wyniku zwracanego przez scanf (patrz manual) sprawdzić czy pętla powinna zrobić kolejny obrót. Tylda ~ to operator negacji bitowej czyli odwrócenia bitów w zmiennej. Zobacz co powoduje jego użycie na dowolnej liczbie całkowitej ujemnej, a potem w ramach pracy domowej opisz nam tu co daje w przypadku powyższego kodu
To rzeczywiście masz problem, więc może najpierw tego się dowiedz?
W zasadzie już dostałeś odpowiedzi, ale ja dodam jeszcze dwie:
Topic | Category | Replies | Views | Activity |
---|---|---|---|---|
I want Preparation Tips for an Upcoming SPOJ Contest | Tutoriale, poradniki | 2 | 151 | Jun '24 |