我被要求编写一个评估任意多项式的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
那是输出!
答案 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