C++ [proszę użyć COUT i CIN a nie scanf i printf ]


Dane są liczby całkowite a i b. Napisz program, który wypisze wszystkie liczy w parzyste w kolejności rosnącej, a następnie wszystkie liczby nieparzyste w kolejność malejącej z przedziału <a; b>.

Wejście:
Pierwszy i jedyny wiersz wejścia zawiera dwie liczby całkowite a i b (aa<=b) oddzielone pojedyncza spacja z zakresu 0...255.

Wyjście:
W kolejnych wierszach należny zapisać rosnący ciąg licz parzystych z przedziału <a; b>, zaś po nim malejący ciąg liczb nieparzystych z tego przedziału.

Przykład:
Dla danych wejściowych:
3 6
poprawną odp jest:
4 6
5 3

3

Odpowiedzi

Najlepsza Odpowiedź!
2009-12-12T14:23:46+01:00
#include <iostream>

int main() {
int a, b;
std::cin >> a >> b; // wczytanie liczb

int i = a;
if (i % 2 == 1) ++i; // jeśli i bylo nieparzyste, to zwiekszamy o jeden
for (; i<=b; i+=2) std::cout << i << " ";
std::cout << "\n";

i = b;
if (i % 2 == 0) --i;
for(; i>=a; i-=2) std::cout << i << " ";
std::cout << "\n";

return 0;
}
2009-12-12T14:57:38+01:00
#include <iostream>

int main()
{
int a,b;

bool ok = true;

do
{
if(!ok)
std::cout << "Podano bledne liczby. Warunek: a <= b, <0,255> \n";
std::cout << "Podaj a i b: ";
std::cin >> a >> b;
if(a > b || a < 0 || a > 255 || b < 0 || b > 255)
ok = false;
else
ok = true;
system("cls");
}while(!ok);

std::cout << "Dla danych wejsciowych:\n";
std::cout << a << " " << b << "\n";
std::cout << "Poprawna odpowiedzia jest:\n";
for(int i = a; i <= b; i++)
{
if(i%2 == 0)
std::cout << i << " ";
}
std::cout << "\n";
for(int i = b; i >= a; i--)
{
if(i%2 != 0)
std::cout << i << " ";
}

std::cout << "\n";
system("pause");
return 0;
}
1 1 1
2009-12-12T19:16:01+01:00
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
for(int i=a+a%2;i<=b;i+=2)cout<<i<<" ";
cout<<endl;
if(a%2!=1)a++;
for(int i=a;i<=b;i+=2)cout<<i<<" ";
getch();
//zamiast getch(); możesz dac, nie wiem czego używacie system("pause");
}