C 多项式指针程序错误,扫描仪跳过输入

C 多项式指针程序错误,扫描仪跳过输入,c,pointers,polynomials,C,Pointers,Polynomials,我写了这个程序,它计算用户输入的x值的8个多项式度。该程序运行,但一旦我输入8个多项式,它应该允许我输入x的值,但它跳过,并向我显示输出。我试着在扫描器函数中使用浮动和双精度,但是没有成功。任何帮助都将不胜感激,谢谢 #include <stdio.h> #include <stdlib.h> #include <math.h> void get_poly(double *coeff, int N); double eval_poly(double *coe

我写了这个程序,它计算用户输入的x值的8个多项式度。该程序运行,但一旦我输入8个多项式,它应该允许我输入x的值,但它跳过,并向我显示输出。我试着在扫描器函数中使用浮动和双精度,但是没有成功。任何帮助都将不胜感激,谢谢

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void get_poly(double *coeff, int N);
double eval_poly(double *coeff, double base, int N);

int main(void)
{
    int N = 8;
    double res;
    double base = 0.0;
    double a[N];
    double *coeff;
    coeff = &a[0];

       printf("Enter the eight coeffecients: \n");
       scanf(" %d",&N);
       get_poly(coeff, N);

       printf("Enter x: \n");
       scanf(" %lf", &base);

       res=eval_poly(coeff, base, N);

       printf("Output: %f. \n",res); 


      return 0;
  }

void get_poly(double *coeff, int N)
{
   int i = 0;
   double placeholder;
   for (i = 0; i < N; i++)
   {
    scanf(" %lf", &placeholder);
    *coeff = placeholder;
    coeff++;
   }
}

double eval_poly(double *coeff, double base, int N)
{
   int i = 0;
   double res=0.0;

   for (i = 0; i < N; i++)
   res=res+coeff[i]*pow(base,i);

   return res;
}
#包括
#包括
#包括
void get_poly(双*系数,整数N);
双求值多边形(双*系数,双基,整数N);
内部主(空)
{
int N=8;
双res;
双基=0.0;
双a[N];
双*系数;
系数=&a[0];
printf(“输入八个系数:\n”);
scanf(“%d”和“&N”);
得到μpoly(coeff,N);
printf(“输入x:\n”);
扫描频率(“%lf”、&base);
res=评估多边形(系数,基数,N);
printf(“输出:%f.\n”,res);
返回0;
}
void get_poly(双*系数,整数N)
{
int i=0;
双占位符;
对于(i=0;i
一个主要问题是
eval\u poly
函数中的定义:

double res=coeff[N];
这里
N
的值是传递给函数的数组的大小。将其用作索引将超出范围,并导致未定义的行为

循环也是一样,其中条件
i可能重复