| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 584 人关注过本帖
标题:算法问题
取消只看楼主 加入收藏
A306452792
Rank: 1
等 级:新手上路
帖 子:31
专家分:7
注 册:2010-8-18
结帖率:100%
收藏
 问题点数:0 回复次数:2 
算法问题
  #include "stdio.h"
  #include "1plyv.c"
  main()
  { int i;
    static double a[7]={-20.0,7.0,-7.0,1.0,3.0,-5.0,2.0};
    static double x[6]={0.9,-0.9,1.1,-1.1,1.3,-1.3};
    printf("\n");
    for (i=0; i<=5; i++)
      printf("x(%d)=%5.2lf   p(%d)=%13.7e\n",
             i,x[i],i,plyv(a,7,x[i]));
    printf("\n");
  }
程序运行不了,#include "1plyv.c"是什么的,貌似没见过,但算法集中全有这类型的,在VC中运行不了。。。。。。
搜索更多相关主题的帖子: 算法 
2010-12-14 12:50
A306452792
Rank: 1
等 级:新手上路
帖 子:31
专家分:7
注 册:2010-8-18
收藏
得分:0 
多项式计算的算法,百度一下就知了,只不过为什么有这样的算法却运行不了,是编辑器的问题吗?
2010-12-14 13:45
A306452792
Rank: 1
等 级:新手上路
帖 子:31
专家分:7
注 册:2010-8-18
收藏
得分:0 
我想把这两个C文件合并,怎样合?因为按四楼创建两个文件的方法,调试是没问题,但运行不了。。。
(主文件)
  #include "stdio.h"
  #include "1plys.c"
  main()
  { int i;
    double p[6];
    static double a[7]={-20.0,7.0,-7.0,1.0,
                        3.0,-5.0,2.0};
    static double x[6]={0.9,-0.9,1.1,-1.1,1.3,-1.3};
    plys(a,7,x,6,p);
    printf("\n");
    for (i=0; i<=5; i++)
      printf("x(%d)=%5.2lf   p(%d)=%13.7e\n",
             i,x[i],i,p[i]);
    printf("\n");
  }
(包含的文件)

  #include "math.h"
  #include "stdlib.h"
  void plys(a,n,x,m,p)
  int n,m;
  double a[],x[],p[];
  { int i,j,mm,nn,ll,t,s,kk,k;
    double *b,y,z;
    b=malloc(2*n*sizeof(double));
    y=a[n-1];
    for (i=0; i<=n-1; i++) b[i]=a[i]/y;
    k=log(n-0.5)/log(2.0)+1;
    nn=1;
    for (i=0; i<=k-1; i++) nn=2*nn;
    for (i=n; i<nn-1; i++) b[i]=0.0;
    b[nn-1]=1.0;
    t=nn; s=1;
    for (i=1; i<=k-1; i++)
      { t=t/2; mm=-t;
        for (j=1; j<=s; j++)
          { mm=mm+t+t; b[mm-1]=b[mm-1]-1.0;
            for (kk=2; kk<=t; kk++)
              b[mm-kk]=b[mm-kk]-b[mm-1]*b[mm+t-kk];
          }
        s=s+s;
      }
    for (kk=1; kk<=m; kk++)
      { for (i=0; i<=(nn-2)/2; i++)
           a[i]=x[kk-1]+b[2*i];
        mm=1; z=x[kk-1];
        for (i=1; i<=k-1; i++)
          { mm=mm+mm; ll=mm+mm; z=z*z;
            for (j=0; j<=nn-1; j=j+ll)
              a[j/2]=a[j/2]+a[(j+mm)/2]*(z+b[j+mm-1]);
          }
        z=z*z/x[kk-1];
        if (nn!=n) a[0]=a[0]-z;
        p[kk-1]=a[0]*y;
      }
    return;
  }
2010-12-14 16:46
快速回复:算法问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042867 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved