witam. Mam pytanie do doświadczonych programistów:D. Jak zrobić program w c++ żeby z zaskresu 100 liczb wypisywał tylko parzyste.
z góry dzięki.
Wersja do druku
witam. Mam pytanie do doświadczonych programistów:D. Jak zrobić program w c++ żeby z zaskresu 100 liczb wypisywał tylko parzyste.
z góry dzięki.
sprawdzaj czy jest podzielne przez 2 :)
Skoro parzyste występują co dwa, to najłatwiej przelecieć przez zakres 0, 100 i wypisać co drugą:
@downKod:for(int i=0;i<100;i+=2)
cout<<i<<" ";
Jasne, zawsze można sprawdzać wszystkie liczby pod kątem parzystości :P
@edit:
W odpowiedzi na kod Bazana: wersja na dowolny zakres
Kod:#include <iostream>
using namespace std;
int main(){
int start = 0;
int end = 100;
cout<<"wpisz liczbe startowa";
cin>>start;
cout<<endl<<"wpisz liczbe koncowa";
cin>>end;
cout<<"\n";
int first_even = start % 2 == 0? start : start + 1;
for(int i=first_even;i<end;i+=2)
cout<<i<<" ";
return 0;
}
@up
On nie pytal o co druga liczbe, tylko liczby parzyste = podzielne przez 2. To jest roznica. Moze i sie czepiam, bo niby efekt wyswietlany ten sam, ale jednak program robi co innego.
Kod:
int start = 0;
int koniec = 100;
// teraz mozesz start i koniec zamienic na liczbe wczytywana z klawiatury
cout<<"wpisz liczbe startowa";
cin>>start;
cout<<endl<<"wpisz liczbe koncowa";
cin>>koniec;
cout<<endl<<endl;
for (int i =start;i<=koniec;i++)
{
// % to funkcja modulo = wraca reszte z dzielenia, parzyste liczby sa podzielne przez 2 bez reszty
// (5 /2 = 2 i reszta 1, 4/2 = 2 i reszta 0), tak wiec 5 % 2 = 1, a 4%2 = 0
if (i % 2 == 0)
{
cout<<i<<' ';
}
}
tak najłatwiej/najlepiejKod:for(int i=0;i<=100;i++)
if(i%2==0)
cout << i;
Fajnie że napisałeś to co koleś 2x wyżej.
Ja tam wole deklarować zmienne na początku niż potem się jebać z szukaniem czegoś w każdej pętli , estetyczniej to wygląda.
no takie zmienne iteracyjne jak i,j można walić na początku ale generalnie lepszym stylem programowania jest używanie używanie zmiennych o jak najmniejszym zasięgu aby nie zaśmiecać pamięci
@down
nie wiem jakie programy piszesz, może skonczyłes na kalkulatorze. Jak sie uczyć to od razu porządnie a nie po łebkach...
Ło matko , przy dzisiejszej ilości pamięci przejmowanie się takimi drobnostkami ma znaczenie chyba tylko teoretyczne.
Równie dobrze mogłeś użyć 1 bajtowych charów zamiast intów skoro jesteś taki pamięciooszczędny ;c
//kończę offtop autor dostał co chciał
#edit
eh
http://stackoverflow.com/questions/4...ore-or-in-loop
Przy 100 milionach powtórzeń było to wolniejsze o 7 tysięcznych sekundy , faktycznie BARDZO BRZYDKI NAWYK TWÓJ PROGRAM UMRZE Z BRAKU PAMIĘCI.
@up: Tworzenie zmiennych iteracyjnych w pętlach ma jedną zajebistą zaletę: nie masz na początku funkcji miliona deklaracji niepotrzebnych zmiennych. Nie chodzi o pamięć, bo w zwykłych warunkach jest jej mnóstwo, ale o czytelny kod. Zresztą wszystkie c++ style guide zalecają tak robić.