2017-01-14 3 views
-1

Я хочу построить функцию, которая получает уравнение (string) как ax^2+bx+c=0 (например: "3x^2+8=0") и получает a, b, c параметров.Как получить параметры ABC из квадратного уравнения?

Вот мой код:

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

#define STR_LEN 25 

void getABC(char str[]); 
int a=0, b=0, c=0; 

int main(void) 
{ 
    char equation[STR_LEN]={0}; 

    printf("Enter an equation:\n"); 
    fgets(equation, STR_LEN, stdin); 
    equation[strcspn(equation, "\n")]=0; 

    getABC(equation); 

    return 0; 
} 

void getABC(char str[]) 
{ 
    // how to get a, b and c? 
} 
+0

'sscanf' будет полезен здесь. –

+0

Ответьте как выбранный, если он решил ваш запрос. –

+0

В вашем вопросе в качестве примера вводится '3x^2 + 8 = 0' Без ax^2 + bx + c, без b, правильно ли это или вы по ошибке писали это? –

ответ

1

Вы можете сделать это вместо того, чтобы

int a ; 
    int b ; 
    int c ; 

    printf("Enter Equation : "); 
    scanf("%dx^2+%dx+%d" , &a , &b , &c); 
    printf("%d %d %d" , a ,b , c); 

Для примера Если ввести 3x^2+4x+10, то 3 будет храниться в a, он будет игнорировать x^2 и + и затем храните 4 в b, а затем он будет игнорировать x и + и хранить 10 в c.

Смежные вопросы