Программа позволяет ввести в математике вопрос, такие как:Как создать гибкие выражения заполнителя (% d% s% d) в c?
Bob has 1 apple and Mike 2. What is the sum?
Затем программа понимает слово «сумма» и добавляет два числа вместе. По крайней мере, это то, чего я пытаюсь достичь. Это не работает, поскольку я получаю очень большие числа. Я подозреваю, что выражение% d% s% d не является достаточно гибким и работает только тогда, когда возникает вопрос:
1 sum 2
Порядок, кажется, имеет. Итак, как мне сделать его гибким, чтобы порядок не имел значения?
#include <stdio.h>
#include <string.h>
int main() {
char question[100];
char buffer[100];
int result;
int n1, n2;
int operation;
printf ("Your mathematical question: ");
fgets(question, sizeof(question), stdin);
fflush(stdin);
if(strstr(question, "sum") || strstr(question, "add")){
operation = 0;
}
sscanf(question, "%d %s %d", &n1, buffer, &n2);
printf ("%d %d \n", n1, n2);
switch(operation) {
case 0: result = n1 + n2;
break;
}
printf ("%d", result);
return(0);
}
'fflush (stdin);' invokes * undefined behavior *. Не используйте его. – MikeCAT
Не уверен, что 'sscanf' - это путь сюда. –
@MikeCAT im в настоящее время в школе. Учитель сказал мне использовать его. Не стесняйтесь показать мне альтернативу: ( – Asperger