作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我要求提供系数的值,将它们存储在动态分配的数组中,变量的值和多项式的次数,但是应该包含多项式值的变量 p 的值却没有初始化后得到更新。我尝试使用值 x=3, n=3 a(n...0) = {3,3,3,3} ,返回值为 3我使用霍纳的方法进行计算
#include <stdio.h>
#include <stdlib.h>
struct dynamic_arr
{
int nelem;
double arr[1];
};
double polynomial(struct dynamic_arr *a,int n, double x);
int main()
{
struct dynamic_arr *a;
int n;
double pl;
double x = 2;
int scancount;
do
{
printf("enter the degree of the polynomial: ");
scancount = scanf("%d", &n);
}
while (scancount == 0);
a = malloc(sizeof(struct dynamic_arr)+sizeof(int)*(n+1));
if (a == NULL)
{
exit(EXIT_FAILURE);
}
a->nelem == n;
do
{
printf("enter the coefficient of the %d degree monomial:", n);
scancount = scanf("%lf", &a->arr[n]);
while(getchar() != '\n')
;
}
while (scancount == 0 || n-- > 0);
do
{
printf("enter x :");
scancount = scanf("%lf", &x);
}
while (scancount != 1);
pl = polynomial(a,a->nelem,x);
printf("%f", pl);
free(a);
return 0;
}
double polynomial(struct dynamic_arr *a,int n, double x)
{
double p;
p= a->arr[2];
while (--n >= 0)
{
p = p*x+a->arr[n];
}
return p;
}
最佳答案
a->nelem == n;
是与未使用的值的比较,而不是赋值。
<小时/>p= a->arr[2];
应该是
p= a->arr[n];
<小时/>
a = malloc(sizeof(struct dynamic_arr)+sizeof(int)*(n+1));
内存不足,因为所使用的数组的数据类型为 8byte double
,而不是 4byte int
。
关于c - 评估多项式,使用动态分配的系数数组,我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40207695/
我是一名优秀的程序员,十分优秀!