Aktywne Wpisy
czerwonykomuch +134
Biedni pciembiorcy są rabowani i łupieni OGROMNYMI PODATKAMI, takimi jak CIT 9% lub ryczałt 8,5%. To prawdziwy koszmar w porównaniu do 41% PIT dla etatowców, którzy za to nie mają możliwości odliczenia czegokolwiek.
Biedni pciembiorcy kompletnie nic nie dostają od państwa, jedynie:
- edukację dla siebie i swoich dzieci
- ochronę zdrowia
- zasiłki, renty, emerytury, pomoc dla niepełnosprawnych
- drogi, mosty, chodniki, transport publiczny
- infrastrukturę energetyczną
- możliwość życia w
Biedni pciembiorcy kompletnie nic nie dostają od państwa, jedynie:
- edukację dla siebie i swoich dzieci
- ochronę zdrowia
- zasiłki, renty, emerytury, pomoc dla niepełnosprawnych
- drogi, mosty, chodniki, transport publiczny
- infrastrukturę energetyczną
- możliwość życia w
Altru +440
Czy drugie for zaczyna się wykonywać kiedy pierwszy for będzie fałszywe?
+ co dokładnie robi drugie for? Czemu inicjacja zmiennej to j=n-1? I po co tam ten if w forze?
Czy klamry tutaj mają większe znaczenie, tj. czy jakby ich nie było to czy kod pokazywałby to samo?
#ansic #cpp #naukaprogramowania
a)
Nie, drugi for będzie wykonywał się zawsze
b) > Czemu inicjacja zmiennej to j=n-1?
Najpierw pobierasz ile liczb ma być w tablicy. tablica jest indeksowana nie od liczby 1, tylko od 0, więc należy do przedziału <0;n-1>. Jeśli chciałabyś operować na indeksie który wykracza poza zakres wywali nam syf po prostu.
c)
if (j%2 == 1) - sprawdza
Komentarz usunięty przez autora
Komentarz usunięty przez autora
Co do for to może być też tak:
for(i = 1; i <= 10; i++ )
jedna_powtarzana_instrukcja;
@laczka:
Z tym, że tutaj można wstawić tylko 1 instrukcję, wiec chcąc zrobić tak jak u ciebie musiałabyś wrzucić to co się dzieje w forze do funkcji
@laczka: A co do tego mojego pisania o modulo (reszcie z dzielenia) to poczytaj sobie o operacjach binarnych (bitwise). Żeby było jasne % nie jest operacją binarne ale one też są ważne i warto wiedzieć jak działają.
1)
Właśnie chyba zboczenie. Po prostu łatwiej się sprawdza czy reszta z dzielenia jest równa zeru (jedna cyfra), czy jakiejś innej, gdzie jest 9 innych (1 - 9), natomiast w tym wypadku będzie zawsze zwracać wynik zero - jeden.
2) właśnie nie jestem pewien czy przy pierwszym okrążeniu pętli nie zastosuje preinkrementacji na początku, co może poskutkować tym, że zaczniemy wpisywać zmienne od indeksu 1.
Twoja tablica jest indeksowana w zakresie <0; n-1>. Więc masz 0,1,2,3,4... n.
Czyli jeśli chciałabyś sprawdzić resztę z dzielenia to twój wynik zawsze będzie równy 0 (indeks parzysty + zero) lub (1 indeks nieparzysty). Dlaczego? Łatwo to pokazać na pierwszych indeksach:
2 - reszta 0
3 - reszta 1
4 - reszta 0
5 - reszta 1
6- reszta 0
7 - reszta 1
I tak dalej, i tak
Twoja tablica jest indeksowana w zakresie <0; n-1>. Więc masz 0,1,2,3,4... n.
Czyli jeśli chciałabyś sprawdzić resztę z dzielenia to twój wynik zawsze będzie równy 0 (indeks parzysty + zero) lub (1 indeks nieparzysty). Dlaczego? Łatwo to pokazać na pierwszych indeksach:
2 - reszta 0
3 - reszta 1
4 - reszta 0
5 - reszta 1
6- reszta 0
7 - reszta 1
I tak dalej, i tak
@laczkalaczka skoro wiesz co robi modulo, to widzisz że jeśli j maleje od n-1 o jeden w każdym obiegu pętli to by wybrać i wypisać co drugą liczbę trzeba to ograniczyć co właśnie robi ten if
for (int j=n-1; j>=0; j--) - initializacja petli, warunek poczatkowy to j=n(wartosc wyzej obliczona) - 1; petla dziala do momentu przekroczenia/zrownania j z 0; j maleje co "obieg"
{
if (j%2 == 1) - jezeli reszta z dzielenia j przez 2 bedzie rowna 1 wykona sie ponizsza funkcja
{
printf("%d",tab[j]); - wyswietla
}
}
A co do tego kodu to jeszcze to:
printf("%d",tab[j]);
Zmieniłbym na to:
printf("%d\n",tab[j]);
\n - przechodzi do nowej linii.
Na koniec dodam, masz tam w zadaniu podane wejście, więc zrób sobie kilka wersji tego kodu i porównaj wyniki. Nie wiem z czego się uczysz, ale warto sięgnąć po aktualne książki a co do C++ to nie używaj