2017-02-02 10 views
0

私は任意の多項式を評価するCコードを書くように求められましたが、私はこれを作ったが、どこかにバグがあるようだ。任意の多項式:Cコード

この私のコード:

#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

常に 'sの戻り値をチェックしてください缶詰。あなたは5つの数字を尋ねるので、戻り値は5でなければなりません。もしあなたがチェックしたら、 'scanf'が1を返し、最初の数字だけが読み込まれたことになります。 – user3386109

+0

あなたのコードはあなたが表示する出力を作成しません。最後の行の最初の部分はどこに印刷されていますか? _0.000000 + 0.000000 + 0.000000 + 44.000000 = _より多くの矛盾が隠されていますか? – Gerhardh

答えて

0

ありフォーマットと入力との矛盾があり、どちらの形式については、

をフォーマットしたり、入力方法を変更:入力の場合

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

をqoutes " "フォーマット内,カンマなしで試してみてください。入力を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