Wątek przeniesiony 2022-02-11 13:08 z Off-Topic przez Riddle.

Parzyste czy nieparzyste

0

co zrobić żeby kod sprawdzał wszystkie liczby w kodzie i na tej podstawie wypisywał czy liczby w tabeli są parzyste lub nieparzyste


#include <iostream>

using namespace std;

int main()
{
 int calkowita[6];
int wynik;

for (int i=0; i<6; i++)
{
    cout << "Podaj liczbe " << i+1<<":";
    cin >> calkowita[i];
}
for (int i=0; i<6; i++)
{

if(calkowita[i]%2!=0){
        cout<<"Liczby nie sa parzyste"<<endl;
    }
    else if(calkowita[i]%2==0){
        cout<<"Liczby sa parzyste"<<endl;
    }

}

 return 0;
}

wyniki programu
screenshot-20220211135305.png

3

Nie wiem czy to wszystkie problemy twojego kodu, ale raczej zamiast & chcesz używać &&.

2

https://4programmers.net/Forum/C_i_C++/358758-laczenie_trzech_programow_w_jeden?p=1825860#id1825860
Jesteście z jednej klasy? Nawet działy wciąż Wam się mylą.

4

O co chodzi z tym warunkiemi>4 co chcesz tym osiągnąć?

2

coś kombinowałem żeby sprawdzało wszystkie liczby i dopiero dawało odpowiedź czy w tablicy są liczby parzyste lub nie parzyste

A rezultat jest taki że sprawdzasz od piątej liczby

bo na razie program patrzy tylko na 1 wpisaną liczbę i daje na jej podstawie daje odpowiedź

A teraz patrzy na piątą liczbę i daje odpowiedź

3

aha tylko teraz pytanie co zrobić żeby sprawdzało parzystość liczb

tu jest o wiele więcej problemów.

Jesli chcesz używać tablicy to powinieneś najpierw wczytać wszystkie liczby do tablicy, a dopieor potem je przetwarzać. Inaczej użycie tablicy nie ma sensu.

Musisz akumulowac stan z poprzednich iteracji. To że wynik jest parzysty czy nie parzysty cz ani parzysty ani nieparzysty zależy od aktualnego sprawdzenia, ale też od wszystkich poprzednich, więc musisz trzymać stan poprzednich sprawdzeń, a ty tego nie robisz.
Warunek i>4&liczba to jakieś totalne nieporozumienie

1

i jesz jak mam trzymać stan poprzednich sprawdzeń?

W zmiennej

3
#include <iostream>
using namespace std;

int main()
{
	static const char* message[]={ "brak liczb?","tylko parzyste","tylko nieparzyste","parzyste uraz nieparzyste" };
	int values[6];	
	int flags=0;
	
	for(int i=0;i<6;++i)
	{
    	cout<<"Podaj liczbe "<<(i+1)<<": ";
        cin>>values[i];
	}
	for(int i=0;i<6;++i) cout<<values[i]<<" ";
	for(int i=0;i<6;++i) flags|=(1+(1&values[i]));
	cout<<"W tablice "<<message[flags]<<endl;
	return 0;
}
1

Wersja bez tablicy (do przetestowania):

#include <iostream>
using namespace std;

int main() {
	int number_count = 0;
	int even_count = 0;
	int a;
	const char *message[4] = { "No values provided", "Mixed", "All odd", "All even" };
	while(cin >> a) {
		number_count++;
		even_count += !(a & 1);
	}
	cout << "Number of values: " << number_count << "\n";
	cout << "Number of even values: " << even_count << "\n";
	int message_id = !number_count ? 0 : (!!even_count) + ((number_count == even_count || !even_count) << 1); 
	cout << message[message_id] << endl;
	return 0;
}

I wersja z "tabelą":

#include <iostream>
using namespace std;

int main() {
	int number_count = 0;
	int even_count = 0;
	int a[6];
	int *aptr = a;
	const char *message[4] = { "No values provided", "Mixed", "All odd", "All even" };
	// input values
	while((aptr != a + 6) && (cin >> *aptr++)) number_count++;
	// process values
	aptr = a + number_count;
	while (aptr-- != a) even_count += !(*aptr & 1);
	// show result
	int message_id = !number_count ? 0 : (!!even_count) + ((number_count == even_count || !even_count) << 1); 
	cout << message[message_id] << endl;
	return 0;
}

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