Zadanie z main.edu.pl

0

Witam,
mam problem z zadaniem ze strony www.main.edu.pl
Nie wiem jak zrobić aby najpierw pobrało daną liczbę liczb a poźniej wypisano je czy są parzyste lub nieparzyste.
Mam zrobione to w taki sposób, że po podaniu liczby od razu określa mi czy jest ona parzysta czy nieparzysta.

0
 #include<iostream>

using namespace std;
int main(){

	int a;
	cout << "Podaj ilosc liczb z zakresu od 1 do 1000: \n";
	cin >> a;
	for (int i = 1; i <= a;){
		cout << "podaj " << i << " z nich: \n";
		cin >> i;
		if (i % 2 == 0)
			cout << "parzysta\n";
		
		else
			cout << "nieparzysta\n";
		
	}
	system("Pause");
0

Bardziej chyba o to chodziło:

#include<iostream>
#include<vector>
using namespace std;

int main(){
	vector<int> numbers;
	unsigned count = 0;
	cout << "How many? "; cin >> count;
	for (unsigned i = 0; i < count; ++i){
		int number = 0;
		cin >> number;
		numbers.push_back(number);
	}

	for (unsigned i = 0; i < count; ++i)
		cout << ((numbers[i] % 2) ? "Odd\n" : "Even\n");
	return 0;
}
2

To automatyczna sprawdzarka, więc nie pisz niepotrzebnych rzeczy na wyjście:

cout << "Podaj ilosc liczb z zakresu od 1 do 1000: \n";
cout << "podaj " << i << " z nich: \n";

Nie zatrzymuj programu, bo nikt nie będzie wciskał entera:

system("Pause");

Skoro nie zwiększasz i to kiedy ta pętla się zakończy?

for (int i = 1; i <= a;)

I używaj postaci "kanonicznej":

for (int i = 0; i < a

Nie musisz zapamiętać wyników i wypisać je na samym końcu, możesz wypisywać wynik od razu dla każdego zestawu danych.

0
twonek napisał(a):

]
Nie musisz zapamiętać wyników i wypisać je na samym końcu, możesz wypisywać wynik od razu dla każdego zestawu danych.

Czyli oznacza to, że po każdej wpisanej liczbie mogę otrzymać napis ?

np.
2
3
nieparzysta
2
parzysta

0

Zobacz jak wygląda wyjście na screenie. Mają być same napisy po nowych linijkach.

0
grzesiek51114 napisał(a):

Zobacz jak wygląda wyjście na screenie. Mają być same napisy po nowych linijkach.

Dzięki za podanie rozwiązania z vectorami ale to za "trudne" rozwiązanie. Kod ma być z wykorzystaniem instrukcji warunkowych i iteracyjnych. Bez tablic, vectorów etc.

0
#include<iostream>
#include<string>
using namespace std;

int main(){
	unsigned count = 0;
	string phrase = "";
	cout << "How many? "; cin >> count;
	for (unsigned i = 0; i < count; ++i){
		int number = 0;
		cin >> number;
		phrase += (number % 2) ? "Odd\n" : "Even\n";
	}
	cout << phrase;
	system("pause");
	return 0;
}
1
Pijany Lew napisał(a):

Czyli oznacza to, że po każdej wpisanej liczbie mogę otrzymać napis ?
np.
2
3
nieparzysta
2
parzysta

Sprawdzarka ma oddzielne wejścia i wyjścia, więc jedynie Ty tak widzisz na swojej konsoli. Testuj swój program za pomocą plików to zobaczysz mniej więcej to samo:

moj_program < dane_wejsciowe.txt > plik_wyjsciowy.txt
0

twonek, dziękuję za pomoc ;)

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