Я пытаюсь выполнить условный и if-else цикл по этой проблеме, однако моя основная функция не выполняет шаги в том порядке, который я намеревался.Как выполнить функцию «Главная» в правильном порядке?
#include<stdio.h>
void draft(int, char);
void main()
{
int age = 0;
char sex;
printf("How old are you?");
scanf_s("%d", &age);
printf("Please enter your sex.(M or F)");
scanf_s("%c", &sex);
draft(age,sex);
system("pause");
return;
}
void draft(int age,char sex)
{
if (age>= 21 && sex=="M")
{
printf("Congratulations son, You will be going off to Syria to fight for your country.\n");
}
else if (age >= 18 && sex == "M")
{
printf("Congratulations son, You will be going off to Vietnam to fight for your country.\n");
}
else if (age < 18 && sex == "M")
{
printf("Sorry Son you're still too young.\n");
}
else if (age >= 21 && sex == "F")
{
printf("Sorry,miss, only men can serve.\n");
}
else if (age >= 18 && sex == "F")
{
printf("Sorry,little lady, only men can serve.\n");
}
else if (age < 18 && sex == "F")
{
printf("Sorry,little girl, only men can serve.\n");
}
else
{
printf("Please enter age and sex.");
}
return;
}
Пользователь предлагается для своего возраста, но после этого вводится он будет идти непосредственно к последнему ELSE оператору функции «проект», не давая пользователю возможность ввести пол.
Я не вижу, как это может произойти на основе кода здесь. Шаг за строкой в отладчике. –
@EricJ .: Я думаю, вы не видели 'scanf_s («% c », &sex);'? – EOF
Что произойдет, если вы просто используете 'scanf'? –