代码之家  ›  专栏  ›  技术社区  ›  user8232299

C未正确读取输入值

  •  -1
  • user8232299  · 技术社区  · 8 年前

    我对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返回评估多项式的双重结果 在输入次数1和系数1.5后,我得到以下无限循环。它不允许我输入x。 Infinite loop

    1 回复  |  直到 8 年前
        1
  •  2
  •   Iharob Al Asimi    8 年前

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

    printf(3) scanf(3)