| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 386 人关注过本帖
标题:问一个初级问题,vc上的程序能直接复制到c++上上运行吗?
取消只看楼主 加入收藏
爱琴海不会走
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-5-13
收藏
 问题点数:0 回复次数:1 
问一个初级问题,vc上的程序能直接复制到c++上上运行吗?
我复制过去了,老提示有一个错误,找不到,怎么办?
搜索更多相关主题的帖子: 复制 
2012-05-21 16:38
爱琴海不会走
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-5-13
收藏
得分:0 
#include<stdio.h>
#include<math.h>
#define MAX  10
#define MAXT 15
void cholesky(n, u, x, m)  /*  */
     float n[][MAX],u[],x[];
     int m;
     {  int i,j,k;
    float d[MAX],y,z,w;
    for(i=0;i<m;i++)
      for(j=0;j<=i;j++)
      { w=n[j][i];
         if (i==j)
        {for(k=j-1;k>=0;k--)
           {y=n[i][k];
        z=y*d[k] ;
        n[i][k]=z;
        w=w-y*z;}
           if (w<1e-7) return;
           d[i]=1.0/w;}
         else
               for(k=j-1;k>=0;k--)
           {w-=n[i][k]*n[j][k];
        n[i][j]=w;}
          }
       for (j=0;j<m;j++)
        { y=u[j];
         for(k=j-1;k>=0;k--)
          y-=n[j][k]*x[k];
          x[j]=y;}
       for(j=m-1;j>=0;j--)
        { y=x[j]*d[j];
          for(k=j+1;k<m;k++)
           y-=n[k][j]*x[k];
           x[j]=y;}
         return;}

 void  makeN( a,p, n,m,t)
      float a[MAX][MAXT],p[],n[][MAX];
      int m,t;
     { int i,j,k;
       for(i=0;i<m;i++)
     for(j=0;j<m;j++)
       { n[i][j]=0.0;
         for(k=0;k<t;k++)
          n[i][j]+=a[i][k]*p[k]*a[j][k];
        }
       }

   float result(a,p,q,v,m,t)
     float a[][MAXT],p[],q[],v[];
     int m,t;
     {

       int i,j;
       float s=0.0;
       for(i=0;i<t;i++)

       {v[i]=0.0;
        for(j=0;j<m;j++)
        v[i]+=a[j][i]*q[j]*p[i];
         }
        for (i=0;i<t;i++)
         s+=v[i]*v[i]/p[i];
         return sqrt(s/m);
       }


   main()
   { int i,r,n;
     static float a[MAX][MAXT]={{1,1,1,0,0,0,0,0},{0,0,-1,0,0,-1,1,0},
                {0,-1,0,1,0,0,0,-1},{0,0,0,0,1,1,0,1}}; /*a[MAX]=A*/
     static float w[MAX]={28,47,-65,-60};/*w[MAX]=W]*/
     static float p[MAXT]={1.81,0.94,1.42,1.76,1.35,0.99,1.38,1.4}; /*p[MAXT]=Q*/
     float  k[MAX],v[MAXT],m[MAX][MAX],m0;
     printf("please input r,n: " );
     scanf("%d,%d",&r,&n); /* r=4,n=8 */
     makeN(a,p,m,r,n) ;
     cholesky(m,w,k,r);
    for(i=0;i<r;i++)printf("%f," ,k[i]);
     m0=result(a,p,k,v,r,n);
     printf("M0=%f\n\1n",m0);
     for(i=0;i<n;i++)
     printf("V(%d)=%f\n",i+1,v[i]);
   }
一个测量平差的序列。。。VC上的,直接复制c++显示错误。。
2012-05-22 01:01
快速回复:问一个初级问题,vc上的程序能直接复制到c++上上运行吗?
数据加载中...
 
   



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

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