Почему происходит неправильный вывод (либо "м" и "высшее", либо все наоборот "ж" и "среднее")?
Вывожу в консоль
void show (list cur) {
unsigned char k = 0;
system ("cls");
if (cur == NULL) {
puts ("Список пуст");
system("pause");
return;
}
puts ("| # | Фамилия | Год рождения | Пол | Образование | Год трудоустройства |");
puts ("-----------------------------------------------------------------------------------------------");
while (cur) {
printf ("| %-3d| %-30s| %-12d | %-3c | %-11s | %-19d |\n", ++k, cur->data.surname, cur->data.age, cur->data.gender == 1 ? 'м' : 'ж', cur->data.educ == 1 ? "высшее" : "среднее", cur->data.work);
cur = cur->next;
}
system("pause");
}
На выводе почему то все выводит "м" и "высшее", либо все наоборот "ж" и "среднее". Помогите, пожалуйста.