任意多项式:C代码

时间:2017-02-02 04:17:10

标签: c

我被要求编写一个评估任意多项式的C代码,我做了一个,但似乎某处有一个bug。

这是我的代码:

#include <stdio.h>
#include <math.h>
int main (void) {
//initialize the variables
float x=0;
float a1=0;
float a2=0;
float a3=0;
float a0=0;
float fx=0;

printf("enter a0, a1, a2, a3. and your x value in the meintioned order,\nmake a single space between your inputs\n");
scanf("%f, %f, %f, %f, %f", &a0, &a1, &a2, &a3, &x); //reading the values of a1, a2, a3, a0, and x

fx= ((a3 * pow (x, 3)) + (a2 * pow (x, 2)) + (a1 * pow (x, 1)) + (a0 * pow (x, 0)));

printf("f(x) = %lf", fx);

return 0;
}

这是我的输入,经过多次尝试后我发现代码输出的是用户输入的第一件事的值。

我编辑了我的代码,向我展示了实际发生的事情:

enter a0, a1, a2, a3. and your x value in the mentioned order,
make a single space between your inputs
44 4 4 4 4
0.000000 + 0.000000 + 0.000000 + 44.000000 = f(x) = 44.000000

那是输出!

1 个答案:

答案 0 :(得分:0)

格式和输入不一致,无论是更改格式还是输入方式,

格式:请在格式为, qoutes

的情况下尝试不使用" "逗号
scanf("%f %f %f %f %f", &a0, &a1, &a2, &a3, &x); //reading the values of a1, a2, a3, a0, and x

对于输入:将输入更改为44,4,4,4,4,它将以您当前的方式工作

scanf("%f,%f,%f,%f,%f", &a0, &a1, &a2, &a3, &x); //reading the values of a1, a2, a3, a0, and x