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.
#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");
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;
}
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.
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
Zobacz jak wygląda wyjście na screenie. Mają być same napisy po nowych linijkach.
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.
#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;
}
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
twonek, dziękuję za pomoc ;)