2017-09-28 22 views
-1

私はCの新機能で、不確定な値をコンソールから取得する必要があるプロジェクトで作業している間に、正しい値が得られていません。それはアドレスのように思えますが、それはポインタの問題だと思っていますが、見つけられないようです。Cの値が正しく入力されていない

int getVals(int degree){ 

     double sum; 
     double x; 
     double coefs[degree]; 
     for(int counter = 0; counter<=degree; counter = counter+1){ 
       double nxt; 
       scanf(" %d", &nxt); 
       coefs[counter] = nxt; 
       printf("coefs[%d] = %d\n", counter, coefs[counter]); 

     } 
     printf(" x ? "); 
     scanf(" %d", &x); 
     printf("degree %d x %d\n", degree, x); 
     sum = poly(x, degree, coefs); 
       printf ("polynomial evaluate to: %lf\n", sum); 
     int newDegree; 
     scanf(" %d", &newDegree); 
     degree = newDegree; 
     if(degree>-1){ 
       getVals(degree); 
     } 
     else 
       return degree; 
} 

注:ポリ私は1度と1.5の係数を入力した後、次の無限ループを取得しています評価された多項式 の二重の結果を返します。それは私がxに​​入ることを許さない。 scanf(" %d", &newDegree);Infinite loop

答えて

2

(自分の価値観がdouble、ないintあるので)あなたは"%lf"書式指定子を使用する必要があります。 printf()を呼び出して、すべての通話の書式指定子をscanf()"%f"に変更します。

printf(3)scanf(3)のリンクを参照してください。

+0

また、おそらく "ポリ"関数のコードを表示する必要があります。 – Vinicius

関連する問題