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] = %dn", counter, coefs[counter]);
        }
        printf(" x ? ");
        scanf(" %d", &x);
        printf("degree %d x %dn", degree, x);
        sum = poly(x, degree, coefs);
                printf ("polynomial evaluate to: %lfn", sum);
        int newDegree;
        scanf(" %d", &newDegree);
        degree = newDegree;
        if(degree>-1){
                getVals(degree);
        }
        else
                return degree;
}

注意:Poly返回评估的多项式的双重结果进入1个学位后,我将获得以下无限环路,系数为1.5。它不允许我输入X。无限循环

scanf(" %d", &newDegree);中,您应该使用"%lf"格式指定器(因为您的值是double,而不是int)。将所有调用中的格式指定词更改为scanf()"%f"中的CC_6。

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

最新更新