2017-09-28 25 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。 Infinite loop

回答

2

scanf(" %d", &newDegree);你應該使用"%lf"格式說明(因爲你的價值觀是double,不是int)。致電printf(),將所有呼叫中的格式說明符更改爲scanf()"%f"

請參閱本文檔鏈接printf(3)scanf(3)

+0

另外,您應該顯示「poly」函數的代碼。 – Vinicius