как положить в математическое уравнение в C - PullRequest
1 голос
/ 25 мая 2011

Я пытался посмотреть в Google, как вставить уравнение в мою программу, но не смог найти ни одного Как вы включаете:

x = ( -b + √b2 - 4ac ) / 2a  

в программе?

Вот мой код:

{
    int a, b, c;
    float x;

    //statements
    printf("Enter three integers: ");
    scanf("%d %d %d", &a, &b, &c);

    //computeforX

    x = ( -b + √b2 - 4ac ) / 2a  

    printf("The value of x is %.1f", x);

    return 0;
}

Ответы [ 4 ]

7 голосов
/ 25 мая 2011

Предполагая, что мы говорим о C (или C ++) здесь, вам нужно исследовать функцию sqrt, а также, возможно, также функцию pow (хотя в этом нет необходимости, поскольку b -квадрат может быть вычислен как b*b).

Обратите внимание, что вам нужно будет преобразовать все ваши входные значения в float или double, прежде чем начинать вычисления,в противном случае вы не получите ожидаемый результат.

2 голосов
/ 26 мая 2011

Вам нужна таблица для перевода:

a + b -> a+b

a-b -> a-b

a / b -> a/b

ab -> a*b

√x -> sqrt(x)

x² -> x*x (Если вы хотите возвести в квадрат нечто более сложное, лучше использовать временную переменную для значения, возводимого в квадрат, разбивая ваше уравнение на части.)

Обратите внимание, что если вы разделите int на int в C, вы получите int. Так что перед делением лучше конвертировать эти int с в double с.

1 голос
/ 25 мая 2011

Если мы имеем дело с C ++, это будет что-то вроде

#include <iostream.h>
#include <cmath>

int main ()

{
//Declare Variables
double x,x1,x2,a,b,c;
cout << "Input values of a, b, and c." ;
cin >>a >>b >>c;
    if ((b * b - 4 * a * c) > 0)
    cout << "x1 = (-b + sqrt(b * b - 4 * a * c)) / (2 * a)" &&
    cout << "x2 = (-b + sqrt(b * b - 4 * a * c)) / (2 * a)";

    if else ((b * b - 4 * a * c) = 0)
    cout << "x = ((-b + sqrt(b * b - 4 * a * c)) / (2 * a)"

    if else ((b * b - 4 * a * c) < 0)
    cout << "x1 = ((-b + sqrt(b * b - 4 * a * c) * sqrt (-1)) / (2 * a) &&
    cout << "x2 = ((-b + sqrt(b * b - 4 * a * c) * sqrt (-1)) / (2 * a);
return (0);
}

Теперь, почему у меня такое странное чувство, что я только что сделал чью-то домашнюю работу в первом семестре? - 1006 *

Конечно, прошли годы, и я даже не знаю, скомпилируется ли это, но вы должны понять.

0 голосов
/ 24 сентября 2017

Я очень расстроен, глядя на качество вышеупомянутых ответов и помощи, которая была оказана.

Я надеюсь улучшить содержание этой темы.

Файл C можно скомпилировать с помощью командной строки gcc file.c -o file -lm.

При этом возможное решение в С:

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

int main(){
    int da, db, dc;
    double x, a,b,c;

    //statements
    printf("Enter three integers: ");
    scanf("%d %d %d", &da, &db, &dc);

    a = (double)da;
    b = (double)db;
    c = (double)dc;

    //computeforX
    x = (double) ( -b + sqrt(b * b) - 4 * a * c ) / ( 2 * a )  ;

    printf("The value of x is %g \n", x);

    return 0;
}
...