我是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)。