Problem z przypisaniem wartości zmiennej friend_sex

0

Cześć, uczę się c++ i mam problem z wykonaniem zadania.

Zadanie brzmi: "Zadeklaruj zmienną typu char o nazwie friend_sex i zainicjalizuj ją wartością 0. Poproś użytkownika o wprowadzenie litery m, jeśli przyjaciel jest mężczyzna, luk k, jeśli jest to przyjaciółka. Przypisz wprowadzoną wartość zmiennej friend_sex. Następnie za pomocą instrukcji if napisz poniższe zdania:

Jeśli jest to mężczyzna, napisz: Jeśli zobaczysz friend_name, poproś go, aby do mnie zadzwonił.

Jeśli jest to kobieta, napisz: Jeśli zobaczysz friend_name, poproś ją aby do mnie zadzwoniła.

A oto mój kodzik

#include "std_lib_facilities.h"
int main()
{
	cout << "Podaj imie adresata listu: ";
	string first_name;
	cin >> first_name;

	cout << "Podaj imie innego przyjaciela: ";
	string friend_name;
	cin >> friend_name;

	cout << "Wprowadz litere " << '"' << 'm' << '"' << ' ' << "jesli przyjaciel jest mezczyzna lub "
		<< '"' << 'k' << '"' << ' ' << "jesli jest to przyjaciolka: ";
	char friend_sex;
	friend_sex = 0;
	cin >> friend_sex;

	cout << "\n	Drogi " << first_name << ',' << "\nCo u ciebie? U mnie wszystko w porzadku. Tesknie za toba. Jak zdrowie?" 
		<< " Widziales sie ostatnio z " << friend_name << "?\n";

	if (friend_sex == m)
		cout << "Jesli zobaczysz " << friend_name << ", popros go, aby do mnie zadzwonil.";

	if (friend_sex == k)
		cout << "Jesli zobaczysz " << friend_name << ", popros ja, aby do mnie zadzwonila.";
}

Tutaj daję błędy kompilacji, rozumiem co one znaczą, jednak nie wiem jak zrobić to zadanie. Z góry dziękuję za każdą pomoc!

title

2

'm' zamiast m, analogicznie dla kobiety

2

m to nie to samo, co 'm'. To pierwsze to oznaczenie zmiennej o nazwie m, to drugie to char o zawartości 'm'.

0

Dziękuję wam bardzo, kiedy czekałem na odpowiedź bawiłem się w

char friend_sex;
	friend_sex = 0;
	char m = friend_sex;
	cin >> friend_sex;

ale to finalnie nie pykło i sprawdziłem czy ktoś napisał na forum no i dodałem ' ', Jeszcze raz dziękuję wszystkim za pomoc!

0

nie zrobiłeś dwóch rzeczy

char m, k;

lub

string m, k;

no i na dodatek nie wczytujesz płci, po trzecie brakuje ci w kodzie wykrywania płci po imieniu - mężczyzna lub kobieta

0
Althorion napisał(a):

m to nie to samo, co 'm'. To pierwsze to oznaczenie zmiennej o nazwie m, to drugie to char o zawartości 'm'.

Czyli tak naprawdę odnosiłem się do zmiennych które nie istniały, a po poprawce do znaku? Wielkie dzięki za pomoc!

0
zkubinski napisał(a):

nie zrobiłeś dwóch rzeczy

char m, k;

lub

string m, k;

Podczas kiedy szukałem rozwiązania zrobiłem tak, ale trzeba było wpisywać w programie 2 lub 3 razy, A nie o to mi chodziło.

3
Dewolf napisał(a):
Althorion napisał(a):

m to nie to samo, co 'm'. To pierwsze to oznaczenie zmiennej o nazwie m, to drugie to char o zawartości 'm'.

Czyli tak naprawdę odnosiłem się do zmiennych które nie istniały, a po poprawce do znaku? Wielkie dzięki za pomoc!

Dokładnie tak. Jeśli tych wartości byłoby więcej, albo jeśli miałbyś z nich korzystać w większej części programu to dobrą praktyką jest używanie nazwanych stałych zamiast magicznych wartości (chociaż na potrzeby tego zadania jest to zbędne). Możesz do tego użyć enuma lub stałych constexpr

enum class sex : char {
    male = 'm',
    female = 'k'
};

lub

namespace sex
{
static constexpr char male = 'm';
static constexpr char female = 'k';
}

i wtedy:

    if (friend_sex == sex::male)
        cout << "Jesli zobaczysz " << friend_name << ", popros go, aby do mnie zadzwonil.";

    if (friend_sex == sex::female)
        cout << "Jesli zobaczysz " << friend_name << ", popros ja, aby do mnie zadzwonila.";

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