C++ Program sprawdzający czy przynajmniej jedna z podanych dwóch liczb jest parzysta


(anioleczku01@gmail.com) #1

Nie mam pojęcia jak dodać te liczby by móc użyć je w funkcji jeśli.

Jestem totalnie zielona, więc proszę o pomoc. 

 

 

include

 

using namespace std;

 

int main()

{

    int  a,b;

 

 

    cout << "wprowadź liczbe" << endl;

    cin >> a;

 

    cout << "wprowadź liczbe" << endl;

    cin>> b;

cin>> c;

 c=a+b;

 

    if (c%2==0) //dzielenie modulo

 

        cout<< "paRZ"<< endl;

 

else

 

        cout<<"nieparzyste"<<endl;

 

 

 

    return 0;

}


(Drobok) #2

nie zadeklarowałeś zmiennej c, poza tym ta zmienna jest zbędna

  • :arrow: and,
  • || :arrow: or

(enedil) #3

Łatwiej chyba sprawdzać parzystość iloczynu obu liczb.


(Rolek0) #4

Polecam:

Miłej zabawy :slight_smile:


(nintyfan) #5

Starsze procesory miały problem z dzieleniem, bo było wolne. Lepiej więc użyć || i &, czyli !(liczba1 & 1) || !(liczba2 & 1)


(enedil) #6

A gdzie tu dzielenie?

 

Patrzę z perspektywy matematyka. Mnożenie jest szybsze w zapisie, a dodatkowo taki kod łatwiej rozczytać.


(nintyfan) #7

Operacja modulo to dzielenie.


(enedil) #8

Tylko, że modulo 2 jest optymalizowane przez kompilator. Zwrócenie wartości ostatniego bitu jest łatwe i szybkie.


(Ntt 123) #9

 

Chyba raczej […]zdeklarowałaś, powinnaś 

 

A co do rozwiązani Twojego problemu szanowna koleżanko to moja propozycja jest taka:

#include <iostream>

using namespace std;

int main() {

	int a, b;

	cout << "Wprowadz liczbe a: "; cin >> a;
	cout << "Wprowadz liczbe b: "; cin >> b;

	if (a%2 == 0 && b%2 == 0) {

		cout << "Wprowadzone liczby sa parzyste.";

	}
	else
	{
	
		cout << "Wprowadzone liczby nie dziela sie przez dwa.";

	}

	system("PAUSE");
	return 0; 
}

(kostek135) #10

Aż mi oczy wypaliło.

@OP

Na pytanie w tytule

if ((a&b)&1) {
    // obie nieparzyste
} else {
    // conajmniej jedna musi być parzysta
}

Na pytanie na końcu posta

if ((a|b)&1) {
    // conajmniej jedna jest nieparzysta
} else {
    // obie są parzyste
}

(mikolaj_s) #11

@Xio Po pierwsze nie ładnie odrabiać za kogoś zadanie :wink:

A po drugie Twój kod nie spełnia treści zadania w której przynajmniej jedna liczba ma być parzysta. Sumę logiczną należy zastąpić alternatywą.


(Ntt 123) #12

Skupiłem się na drugiej części posta.

 

 

 

 

Według Ciebie jaka jest różnica między sumą logiczną a alternatywą? To tak jakbyś powiedział “zamiast mnożenia wykonaj iloczyn cyfr”.  


(mikolaj_s) #13

“Skupiłem się na drugiej części posta.”

Tego akurat pytania nie rozumiem, bo brzmi jakby było tych liczb więcej niż dwie.


(anioleczku01@gmail.com) #14

Dzięki :)