求帮忙看一下,double arr[]括号内的值怎么才能改成非具体值,也就是不规定上限呢

lanshanstar 2018-08-31 11:15:50
const double eps = 1e-15;
double arr[70000000];
int n, k, i;
double m,p,u,y;
double j,sum,v;
double f(double x)
{
y = 0.0;
for (k=n; k>=0; k--)
{
y = y + arr[k] * pow(x,k);
}
return y;
}
int main()
{
printf("The function is like y = [(arr[n])x^n] + [(arr[n-1])x^(n-1)] + [(arr[n-2])x^(n-2)] + ... + [(arr[1])x] + arr[0]\n");
printf("Input n :");
scanf("%d",&n);
if (n<1)
{
printf("n is too little.\n");
return 1;
}
i = n;
for (i=n; i>=0; i--)
{
printf("Input the arr[%d]: ",i);
scanf("%lf", &arr[i]);
}


printf("\nEnter the range[m,p]:");
scanf("%lf%lf",&m,&p);
if (f(m)*f(p)<= 0.0)
{
while (fabs(m-p)>eps)
{
v=(m+p)/2.0;
sum=f(v);
if (fabs(sum)<eps)
{
break;
}
else
{
if(f(v)*f(m)<=0)
{
p=v;
}
else
{
m=v;
}
}
}
j=(m+p)/2.0;
printf("\nThe root x is%lf\n",j);
}
else
{
printf("f(m)*f(p)> 0.0, It can not solve by this method.");
}
return 0;
}
新人求帮助,谢谢了
...全文
247 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanshanstar 2018-08-31
  • 打赏
  • 举报
回复
顶顶顶顶顶顶顶
赵4老师 2018-08-31
  • 打赏
  • 举报
回复
容量大小从小到大:栈≤全局数据≤堆≤文件≤硬盘≤磁盘阵列≤云存储
当程序需要使用比如2GB~1TB左右的存储时,最简单的办法恐怕得是用文件读写模拟内存读写了吧。windows参考_fseeki64函数,linux参考fseeko64函数。
FILE *fA;fA=fopen("A","rb+");_fseeki64(fA,10000000000i64*sizeof(int),SEEK_SET);fputc(fA,0);//int A[10000000000];
int B;
_fseeki64(fA,9999999999i64*sizeof(int),SEEK_SET);fread(&B,1,sizeof(int),fA);//B=A[9999999999];
_fseeki64(fA,9999999999i64*sizeof(int),SEEK_SET);fwrite(&B,1,sizeof(int),fA);//A[9999999999]=B;
fclose(fA);

赵4老师 2018-08-31
  • 打赏
  • 举报
回复
在现实世界中,除时间和空间可能是无限的以外,其它任何事物都是有限的。
smwhotjay 2018-08-31
  • 打赏
  • 举报
回复
vector list
  • 打赏
  • 举报
回复
C++不支持动态数组,可以用指针自己分配...

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧