C 无法正确读取输入值

C not reading values from input correctly

我是 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;
}

注意:poly returns 求值多项式的双精度结果 输入度数 1 和系数 1.5 后,我得到以下无限循环。它不允许我输入 x。 Infinite loop

scanf(" %d", &newDegree); 中,您应该使用 "%lf" 格式说明符(因为您的值是 double,而不是 int)。在对 scanf() 的所有调用中更改格式说明符,在对 printf() 的调用中更改 "%f" 的格式说明符。

请参阅此链接中的文档 printf(3), scanf(3)