Я изучаю C и пытаюсь создать эту программу, которая по порядку запрашивает ввод оператора (+,-,*,%), число, а затем другое число, используя scanf, printf и getchar(). Когда я делаю это, спрашивая оператора в последнюю очередь, это работает, но сначала я должен получить это от оператора.
Вот код, который я придумал, который работает (но не по порядку):
char operator;
int numbers[2];
int result;
printf("Enter the first number:");
scanf("%9d", &numbers[0]);
printf("Enter the second number:");
scanf("%9d", &numbers[1]);
printf("Enter operation:");
getchar();
operator = getchar();
if (operator == '+') {
result = numbers[0] + numbers[1];
}
else if (operator == '-') {
result = numbers[0] - numbers[1];
}
else if (operator == '*') {
result = numbers[0] * numbers[1];
}
else if (operator == '/') {
result = numbers[0] / numbers[1];
}
else {
result = 0;
}
printf("%d", result);
Это код, который не:
printf("Enter operation:");
getchar();
char operator = getchar();
if (operator == '+') {
result = numbers[0] + numbers[1];
}
else if (operator == '-') {
result = numbers[0] - numbers[1];
}
else if (operator == '*') {
result = numbers[0] * numbers[1];
}
else if (operator == '/') {
result = numbers[0] / numbers[1];
}
else {
result = 0;
}
printf("Enter the first number:");
scanf("%9d", &numbers[0]);
printf("Enter the second number:");
scanf("%9d", &numbers[1]);
printf("%d", result);
Этот дает случайную величину.
Если код не был в блоке, простите меня, я следовал инструкциям, как мог.