c++ wypisawanie liczb parzystych i nie parzystch odzielniw Problem z wypisywaniem od 1 do 2000 ;

0

witam mam problem z moim kodem ktory mial wypisywac liczby od tej liczby co podam z klawiatury w zwyz zawsze nalicza tak jakby od 1705 anie od 1 tak jakbym chcial np albo od 12 itp. i zatrzymywac sie no w okolicy 2000 ale odzielnie parzyste i oddzielnie nie parzyste oto mój kod jak można prosić o jakąś podpowiedź co tu jest nie tak i jako w łopatologiczny sposób nakierować na ta dobrą ścieżkę. z góry dziękuje za pomoc. a oto kod :

#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
int mania(int i){
 do{		  
 		 if(i%2==0){
				 	i=i+2;
		 			cout<<"liczba parzysta"<<endl;
					}
					else{
 		 				i=i+2;
						  cout<<"liczba pierwsza bądź nieparzysta"<<endl;
						  }
						  cout<<i<<endl;
 }while( i < 4000 );
						  return i;
						  }


int main(int argc, char *argv[])
{
 	system ("chcp 1250");
 	int a;
 	cin>>a;
 	mania(a);
 	cout<<a<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
0

Miał tak pobierać z klawiatury liczbe jaka tam obojetnie podasz i mial wypisywac jej nastepne liczby parzyste jesli stwierdzil program po wprowadzniu tej liczby z klawiatury iz jest parzysta ale jest teraz haczyk taki iż jeśli zwieksze rozpatrywane liczby do 2000 to rozpatruje mi tylko od 1705 dla liczb nieparzystych i od 1704 dla liczb parzystych i juz patrze na ten kod i nie widze czemu dlatego moje pytanie brzmi co jest zle co moze zle zadeklarowalem iz pomija mi reszte liczb i bierze dopiero od 1705 lub 1704 jeszcze raz z góry dziękuje ... mój błąd nie zmieniłem zakresu no ale jest tak samo dla 4000 tylko inne są poczatkowe liczby brane pod uwage od ktory wypisuje tak jakby

0

Uważam, że autor tego tematu ma jakiś konkrety problem z wypowiadaniem się, gdyż mówi jakby nie znał składni naszego języka...

#include <iostream>

using namespace std;

int main()
{
    int nOd, nDo;
    cout << "Podaj przedzial - od: ";
    cin >> nOd;
    cout << "Do: ";
    cin >> nDo;

    if(nOd % 2 == 0)
    {
        cout << "Parzyste z przedzialu<" << nOd << ";" << nDo << ">\n";
        for(int i = nOd; i <= nDo; i++)
            if(i % 2 == 0) cout << i << " ";
        cout << "\n";
    }
    else
    {
        cout << "Niearzyste z przedzialu<" << nOd << ";" << nDo << ">\n";
        for(int i = nOd; i <= nDo; i++)
            if(i % 2 != 0) cout << i << " ";
    }

    cout << "\n";

    cin.sync();
    cin.get();
    return 0;
}

 

Ni ch** nie wiem czy o to chodziło, jak nie to sobie przerób jakoś.

0

dobra chcialem moze zbyt ogolnie pokazac i nie zbyt mocno dla co nie ktorych wiec po wiem tak gdy wpiszesz liczbe 12 powinno jechac 12 14 16 18 20 22 itd ale tego nie robi tylko jedzie od 1704 jak dam w while'u do 2000 I szczerze powiedziawszy nie wiem czemu mi to tak liczy a nie od 12 ...

0

okej dziekuje wszystkim za pomoc i przepraszam za moje pieprzenie ale mi sen z powiek wrecz ten kod zabieral dlaczego mi w kompilatorze caly czas bierze od 1704 i tp oki ja juz nie chrzanie jeszcze raz dziekuje wam za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1