一个关于有sqrt()函数头文件但却似乎不能运用该函数的情况,求大佬指点一下!!?

图片说明

小白上路不太懂,求求大佬帮帮忙!!谢谢!!
错误提示栏提示:找不到标识符?
不知道是因为安装时没安装完全还是其他的原因?遇到这种问题改怎么解决呀?

2个回答

关键是这行“有多个重载函数sqrt实例与参数列表匹配。
可能是因为同时用了cmath和math.h。
只用一个试试,或者把参数改成浮点数据试试。

DAurora
DAurora 回复DAurora: 知道了,就是安装的时候有一个组件没装完整,导致库不完整,从而系统找不到这个函数。
7 个月之前 回复
DAurora
DAurora 试过了,也不行呀,还是找不到sqrt的标识符,会不会跟安装VS的时候出了什么问题导致组件没有配完整,以至于库不完全,从而电脑就找不到sqrt函数的类啊?
7 个月之前 回复

直接用cmath或者math.h就好

DAurora
DAurora 这个我也有试过
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
头文件math.h中的pow()函数、sqrt()函数等是inline函数吗?

如题, 头文件math.h中的pow()函数、sqrt()函数等是inline函数吗?

c++函数头文件,测试未定义

funk.h #ifndef FUNK_H #define FUNK_H double gz(double z_1); // Function 1 double sz(double z_2); // Function 2 double zt(double s_1); // Function 3 double egz(double s_2); // Function 4 double urs(double g_1); // Function 5 double urh(double g_2); // Function 6 #endif funk.cpp #include<cmath> #include "funk.h" double a; double gz(double z_1) // F1 { double v; v = z_1 * a; return v; } double sz(double z_2) // F2 { double s; s = a * pow(z_2, 2) / 2; return s; } double zt(double s_1) // F3 { double t; t = sqrt(2*s_1/a); return t; } double egz(double s_2) // F4 { double t; double g; t = sqrt(2*s_2/a); g = a * t; return g; } double urs(double g_1) // F5 { double ug; ug = g_1 / 3.6; return ug; } double urh(double g_2) // F6 { double ug; ug = g_2 * 3.6; return ug; } 编译后显示:Undefined symbols for architecture x86_64: "_main", referenced from: implicit entry/start for main executable ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) test1.cpp #include<iostream> #include "funk.h" using namespace std; int main() { double Z_1; // F1 cin>>Z_1; cout<<"v = "<<gz(Z_1)<<" m/s"<<endl; double z_2; // F2 cin>>z_2; cout<<"s = "<<sz(z_2)<<" m"<<endl; double s_1; // F3 cin>>s_1; cout<<"Benötigte Zeit = "<<zt(s_1)<<" s"<<endl; double s_2; // F4 cin>>s_2; cout<<"Erreichte Geschwindigkeit = "<<egz(s_2)<<" m/s"<<endl; double g_1; // F5 cin>>g_1; cout<<g_1<<" m/s = "<<urs(g_1)<<" km/h"<<endl; double g_2; // F5 cin>>g_2; cout<<g_2<<" km/h = "<<urh(g_2)<<" m/s"<<endl; return 0; } 编译test1.cpp,报错:Undefined symbols for architecture x86_64: "gz(double)", referenced from: _main in test1-15ae57.o "sz(double)", referenced from: _main in test1-15ae57.o "zt(double)", referenced from: _main in test1-15ae57.o "egz(double)", referenced from: _main in test1-15ae57.o "urh(double)", referenced from: _main in test1-15ae57.o "urs(double)", referenced from: _main in test1-15ae57.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

求mysock头文件求mysock头文件

谁有mysock库 我需要那些头文件,自己不会写!谁有mysock库 我需要那些头文件,自己不会写!谁有mysock库 我需要那些头文件,自己不会写!谁有mysock库 我需要那些头文件,自己不会写!

关于友元函数没声明也能运行的问题

#include <iostream> using namespace std; #include <cmath> class point{ private: int x,y; friend int dist1(point p1,point p2); public: point(int a=10,int b=10){ x=a; y=b; } int getx( ){ return x; } int gety( ){ return y; } }; int dist1(point p1,point p2){ double x=(p2.x-p1.x); double y=(p2.y-p1.y); return sqrt(x*x+y*y); } int dist2(point p1,point p2){ double x=p2.getx()-p1.getx(); double y=p2.gety()-p1.gety(); return sqrt(x*x+y*y); } void main() { point p1(2,5),p2(4,20); cout<<dist1(p1,p2)<<endl; cout<<dist2(p1,p2)<<endl; } 为什么dist2这个函数没有声明为友元函数,却也能正常运行?

cpp已经定义了函数,头文件也写好了,为什么在vscode里总提示undefined reference?

本来想做个英雄连的mod启动器,可以分别启动不同的mod,但是总是提示undefined reference,后面发现用最简单的hello world也报错。但是我在qtcreator里面能够正常编译。求前辈解答 代码截图如下: ![图片说明](https://img-ask.csdn.net/upload/202003/18/1584517339_617522.png) ![图片说明](https://img-ask.csdn.net/upload/202003/18/1584517363_984462.png)![图片说明](https://img-ask.csdn.net/upload/202003/18/1584517376_26430.png) 另:我在qtcreator里面修改头文件时,HELLO\_H可以用,但是\_HELLO\_H\_会提示是保留标识符,我看网上的帖子都是\_HELLO\_H\(前后都有下划线),希望能有前辈解答。

c++运算符重载的问题,请问大佬如何对<<运算符重载函数,希望能有注释

#include <iostream> #include <cmath> using namespace std; class Magic { double x; public: Magic(double d = 0.00) :x(fabs(d)) {}//fabs是cmath头文件的函数,求绝对值的 Magic operator+(const Magic&c) { return Magic(sqrt(x*x + c.x*c.x)); }//sqrt是求平方根 friend ostream& operator<<(ostream & stream, const Magic &c);//函数需要你来实现,输出对象的数据成员值 }; int main() { Magic ma; cout << ma << ", " << Magic(2) << ", " << Magic(-6) + Magic(-8) << endl;//构造函数(实参)——创建无名对象 return 0; }

vscode 为什么找不到.h中的函数 undefined reference to `cJSON_Print'

1、 下载cJSON.h/cJSON.c测试cJSON相关函数,只有cJSON.h、cJSON.c 及配套的test.c 三个文件。 1)在code::blocks 中完全正确运行,能看到正确的结果 2)在vscode中报如下错误,找不到函数: ![图片说明](https://img-ask.csdn.net/upload/202003/15/1584284009_532663.png) 2、 事实上三个文件就在同一个目录下: ![图片说明](https://img-ask.csdn.net/upload/202003/15/1584284083_474654.png) 3、 在cJSON.h中有相关函数的声明,比如: ![图片说明](https://img-ask.csdn.net/upload/202003/15/1584284200_635947.png)

在link环境下,如何实现分段求取随机数,要求随机数分段,怎么做?

在link环境下,如何实现分段求取随机数,要求随机数分段,怎么做?

求助各位大神:在C语言中如何对一个扩展双精度浮点数开方

请教各位大神,在C语言中怎么对一个有八十位的扩展双精度浮点数求开方呢。因为sqrt()函数好像只支持单精度和双精度的开方,所以我想对于扩展双精度的开方是否需要进行分段呢,但是又不知道怎么做,求大神赐教!!!

求一元二次方程的根(改了一晚上,还是不正确,这是我第一次的程序)(希望大佬们指点一二,感谢感谢)

总时间限制: 1000ms 内存限制: 65536kB 描述 利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2 + bx + c =0的根,其中a不等于0。 输入 第一行是待解方程的数目n。 其余n行每行含三个浮点数a, b, c(它们之间用空格隔开),分别表示方程ax2 + bx + c =0的系数。 输出 输出共有n行,每行是一个方程的根: 若是两个实根,则输出:x1=...;x2 = ... 若两个实根相等,则输出:x1=x2=... 若是两个虚根,则输出:x1=实部+虚部i; x2=实部-虚部i 所有实数部分要求精确到小数点后5位,数字、符号之间没有空格。 x1和x2的顺序:x1的实部>Re的实部||(x1的实部==x2的实部&&x1的虚部>=x2的虚部) 样例输入 3 1.0 3.0 1.0 2.0 -4.0 2.0 1.0 2.0 8.0 样例输出 x1=-0.38197;x2=-2.61803 x1=x2=1.00000 x1=-1.00000+2.64575i;x2=-1.00000-2.64575i 提示 1、需要严格按照题目描述的顺序求解x1、x2。 2、方程的根以及其它中间变量用double类型变量表示。 3、函数sqrt()在头文件math.h中。 4、要输出浮点数、双精度数小数点后5位数字,可以用下面这种形式: printf("%.5f", num); 注意,在使用Java做此题时,可能会出现x1或x2等于-0的情形,此时,需要把负号去掉 #include<iostream> #include<math.h> using namespace std; int main() { int n; cin>>n; double a[n],b[n],c[n],x1,x2,p,q; int i; for(i=1;i<=n;i++) { cin>>a[i]>>b[i]>>c[i]; p=(-b)/(2*a);q=sqrt(b*b-4*a*c)/(2*a); x1=p+q;x2=p-q; } for(i=1;i<=n;i++) { p=(-b[i])/(2*a[i]);q=sqrt(b[i]*b[i]-4*a[i]*c[i])/(2*a[i]); if(sqrt(b[i]*b[i]-4*a[i]*c[i])>0) { x1=p+q;x2=p-q; printf("x1=%5f;x2=%5f",x1,x2); } elseif(sqrt(b[i]*b[i]-4*a[i]*c[i])==0)printf("x1=x2=%5f",x1); else printf("x1=%f+%f;x2=%f-&f",p,q,p,q); } return 0; }

C++ ImageRotate的一些问题

从网上找了一个CImage的旋转函数,但是好像在读取一些图片的时候会出错, 哪位大神知道问题出在哪里呢? ``` //------图像旋转 //参数:源图像 目标图像 旋转度(alpha = angle * 3.14 / 180) //using method: CImage *dest = new CImage;ImageRotate(src,dest,alpha); //算法:邻近点算法 void ImageRotate(CImage *Imgm, CImage *Imgn, double alpha) { int ww, Dx, Dy, bpd; double centerx, centery, sintheta, costheta; double X1, Y1, X2, Y2, theta, xx, yy, rr; BYTE **list, *sc, *lp; int x, y; //Dx获取宽度 Dx=Imgm->GetWidth(); //Dy获取高度 Dy=Imgm->GetHeight(); sc=(BYTE*)malloc(2*(Dx*Imgm->GetBPP()+31)/32*4); //申请工作单元 list=(BYTE**)malloc(Dy*sizeof(BYTE*)); //对原位图建立二维数组 //list中保存的是每一个高度像素的地址 for (int i=0;i<Dy;i++) { list[i]=(BYTE*)Imgm->GetPixelAddress(0, i); } //计算位图中心位置 centerx=Dx/2.0+0.5; centery=Dy/2.0+0.5; //计算对角线长度 rr=sqrt(centerx*centerx+centery*centery); //反正切 theta=atan(centery/centerx); //求图像边缘长度 X1=fabs(rr*cos(alpha+theta))+0.5; Y1=fabs(rr*sin(alpha+theta))+0.5; X2=fabs(rr*cos(alpha-theta))+0.5; Y2=fabs(rr*sin(alpha-theta))+0.5; //得外接矩形宽度 哪条边长就用哪个长度 if (X2>X1) X1 = X2; //外接矩形高度 if (Y2>Y1) Y1 = Y2; //图片的像素值 ww=(int)(2 * X1); Imgn->Destroy(); //建立结果位图 Imgn->Create(ww,(int)(2*Y1),Imgm->GetBPP()); bpd = Imgm->GetBPP()/8; sintheta = sin(alpha); costheta = cos(alpha); for (int j=(int)(centery-Y1),Yd=0;j<=(centery + Y1);j++,Yd++) { //256色位图像素行置背景值 if (Imgm->GetBPP()==8) memset(sc,255,ww); //真彩色位图像素行置背景值 else memset(sc,255,ww*bpd); for (int i=(int)(centerx-X1),Xd=0;i<=centerx+X1;i++,Xd+=bpd) { xx=centerx+costheta*(i-centerx)+sintheta*(j-centery); yy=centery-sintheta*(i-centerx)+costheta*(j-centery); x=(int)(xx+0.5); y=(int)(yy+0.5); if (x<0||x>= Imgm->GetWidth()||y<0||y>=Imgm->GetHeight()) continue; if(x==Imgm->GetWidth()) x--; if(y==Imgm->GetHeight()) y--; memcpy(&sc[Xd],&list[y][x*bpd],bpd); //从源位图复制像素数据 } lp=(BYTE*)Imgn->GetPixelAddress(0,Yd); //处理结果总结果位图 memcpy(lp,sc,ww*bpd); } free(list); //释放工作单元 free(sc); } ``` 已知在读取某些bmp和png图像时函数会挂掉。。

这是写的关于一元二次方程根求解的代码,不知道为什么在Openjudge上总显示错

http://m.qpic.cn/psb?/V14cKqMA3Zq0A7/9V*fl59NBRYO*MmzOls3mUp6dgIj1VFhTPx1JFr4rbY!/b/dGwBAAAAAAAA&bo=VQOAAgAAAAABJ9Q!&rf=viewer_4 http://m.qpic.cn/psb?/V14cKqMA3Zq0A7/oNH2auzwg2WKRnGD8nHp.2hMdG33UHCA6M7r.0E54*o!/b/dOcAAAAAAAAA&bo=VQOAAgAAAAABJ9Q!&rf=viewer_4 在VC6.0上是可以正确出结果的,题目如下: 谢谢各位 总时间限制: 1000ms 内存限制: 65536kB 描述 利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2 + bx + c =0的根,其中a不等于0。 输入: 第一行是待解方程的数目n。 其余n行每行含三个浮点数a, b, c(它们之间用空格隔开),分别表示方程ax2 + bx + c =0的系数。 输出: 输出共有n行,每行是一个方程的根: 若是两个实根,则输出:x1=...;x2 = ... 若两个实根相等,则输出:x1=x2=... 若是两个虚根,则输出:x1=实部+虚部i; x2=实部-虚部i 所有实数部分要求精确到小数点后5位,数字、符号之间没有空格。 x1和x2的顺序:x1的实部>Re的实部||(x1的实部==x2的实部&&x1的虚部>=x2的虚部) 样例输入 3 1.0 3.0 1.0 2.0 -4.0 2.0 1.0 2.0 8.0 样例输出: x1=-0.38197;x2=-2.61803 x1=x2=1.00000 x1=-1.00000+2.64575i;x2=-1.00000-2.64575i 提示 1、需要严格按照题目描述的顺序求解x1、x2。 2、方程的根以及其它中间变量用double类型变量表示。 3、函数sqrt()在头文件math.h中。 4、要输出浮点数、双精度数小数点后5位数字,可以用下面这种形式: printf("%.5f", num); 注意,在使用Java做此题时,可能会出现x1或x2等于-0的情形,此时,需要把负号去掉

代码调试成功,但是数据却写入不到文件中去,我用的是VS2017,数据文件也已经放入项目中

想请问一下大家,代码运行没有报错,但是数据写入不到文件中去,请问是什么原因? 这是头文件 ``` _****#ifndef _NS_H #include<stdio.h> #include<math.h> #include<time.h> #define imax 100 #define jmax 100 #define maxit 10000 extern double ma0, a0, u0, v0, p0, t0, tr, tw, tratio, visr, xl, gamma, gascon, pr; extern double vis0; extern double cv, cp, r0, rel, e0; extern double kc0; extern double delt, yl, dx, dy; extern double dtime; extern int iter; extern int convergence; extern int t1, t2; extern double dt; extern double u[imax][jmax], v[imax][jmax], p[imax][jmax], r[imax][jmax], rl[imax][jmax], t[imax][jmax], vis[imax][jmax], ma[imax][jmax]; extern double e[imax][jmax], a[imax][jmax], kc[imax][jmax]; void bc(); void conver(); void dynvis(double tr, double tout, double visr, double visout); void mac(); void mdot(); void output(); void qcx(int i, int j, int icase, double qxout); void qcy(int i, int j, int icase, double qyout); void tauxx(int i, int j, int icase, double txx); void tauxy(int i, int j, int icase, double txy); void tauyy(int i, int j, int icase, double tyy); void thermc(double vis0, double cp, double pr, double kcout); void tstep(); #endif**_** ``` 这是主循环 ``` /* A C program of two-dimensional complete Navier-Stokes equations for the supersonic flow over a flat plate based on MacCormack's explicit time-marching technique. Written by ZhouMingming, January, 2019 Based on John D. Anderson, JR., Chapter 10, In Computational Fluid Dynamics, The Basics with Applications, McGraw-Hill, 2002, 4 */ #include"_NS_H.h" int main() { //初始化流场及各种参数 ma0 = 8; a0 = 340.28; u0 = ma0 * a0; v0 = 0; p0 = 1.01325e5; t0 = 288.16; tr = 288.16; tratio = 2; tw = t0 * tratio; visr = 1.7894e-5; xl = 0.00001; gascon = 287; gamma = 1.4; pr = 0.71; dynvis(tr, t0, visr, vis0); cv = gascon / (gamma - 1); cp = cv * gamma; r0 = p0 / (gascon * t0); e0 = cv * t0; rel = r0 * sqrt(u0*u0 + v0 * v0)*xl / vis0; thermc(vis0, cp, pr, kc0); delt = 5 * xl / sqrt(rel); yl = 5 * delt; dx = xl / (imax - 1); dy = yl / (jmax - 1); FILE *fp4; fp4 = fopen("time.txt", "w"); //主循环 t1 = clock(); for (iter = 0; iter < maxit; iter++) { if (iter == 0) { for (int i = 0; i < imax; i++) { for (int j = 0; j < jmax; j++) { u[i][j] = u0; v[i][j] = v0; p[i][j] = p0; t[i][j] = t0; r[i][j] = r0; rl[i][j] = r0; vis[i][j] = vis0; ma[i][j] = ma0; e[i][j] = e0; kc[i][j] = kc0; a[i][j] = a0; } } } //确定推进时间步长 tstep(); //使用MacCormack time marching algorithm求解 mac(); //确定是否收敛 conver(); if (convergence) { mdot(); output(); } } t2 = clock(); dt = (t2 - t1) / CLOCKS_PER_SEC; fprintf(fp4, "%f", dt); fclose(fp4); } ``` 以下是各个cpp文件 ``` #include"_NS_H.h" void bc() { //定义边界条件 //case1: at (0, 0) u[0][0] = 0; v[0][0] = 0; p[0][0] = p0; t[0][0] = t0; e[0][0] = cv * t[0][0]; r[0][0] = p[0][0] / gascon / t[0][0]; dynvis(tr, t[0][0], visr, vis[0][0]); thermc(vis[0][0], cp, pr, kc[0][0]); a[0][0] = a0; ma[0][0] = 0; //case2: at inflow and upper boundary for (int j = 1; j < jmax; j++) { u[0][j] = u0; v[0][j] = v0; p[0][j] = p0; t[0][j] = t0; e[0][j] = cv * t[0][j]; r[0][j] = p[0][j] / gascon / t[0][j]; dynvis(tr, t[0][j], visr, vis[0][j]); thermc(vis[0][j], cp, pr, kc[0][j]); a[0][j] = a0; ma[0][j] = ma0; } for (int i = 1; i < imax; i++) { u[i][jmax - 1] = u0; v[i][jmax - 1] = v0; p[i][jmax-1] = p0; t[i][jmax-1] = t0; e[i][jmax - 1] = cv * t[i][jmax - 1]; r[i][jmax-1] = p[i][jmax-1] / gascon / t[i][jmax-1]; dynvis(tr, t[i][jmax-1], visr, vis[i][jmax-1]); thermc(vis[i][jmax-1], cp, pr, kc[i][jmax-1]); a[i][jmax-1] = a0; ma[i][jmax-1] = ma0; } //case3: at lower surface boundary for (int i = 1; i < imax; i++) { u[i][0] = 0; v[i][0] = 0; p[i][0] = 2 * p[i][1] - p[i][2]; t[i][0] = tw; e[i][0] = cv * t[i][0]; r[i][0] = p[i][0] / gascon / t[i][0]; dynvis(tr, t[i][0], visr, vis[i][0]); thermc(vis[i][0], cp, pr, kc[i][0]); ``` ``` a[i][0] = sqrt(gamma*gascon*t[i][0]); ma[i][0] = sqrt(u[i][0] * u[i][0] + v[i][0] * v[i][0]) / a[i][0]; } //case4: at outflow boundary for (int j = 1; j < jmax - 1; j++) { u[imax - 1][j] = 2 * u[imax - 2][j] - u[imax - 3][j]; v[imax - 1][j] = 2 * v[imax - 2][j] - v[imax - 3][j]; p[imax - 1][j] = 2 * p[imax - 2][j] - p[imax - 3][j]; t[imax - 1][j] = 2 * t[imax - 2][j] - t[imax - 3][j]; e[imax - 1][j] = cv * t[imax - 1][j]; r[imax - 1][j] = p[imax - 1][j] / gascon / t[imax - 1][j]; dynvis(tr, t[imax - 1][j], visr, vis[imax - 1][j]); thermc(vis[imax - 1][j], cp, pr, kc[imax - 1][j]); a[imax - 1][j] = sqrt(gamma*gascon*t[imax - 1][j]); ma[imax - 1][j] = sqrt(u[imax - 1][j] * u[imax - 1][j] + v[imax - 1][j] * v[imax - 1][j]) / a[imax - 1][j]; } } ``` ``` #include"_NS_H.h" void conver() { FILE *fp1; fp1 = fopen("time.txt", "a"); double rcrit = 0; double dr; for (int i = 0; i < imax; i++) { for (int j = 0; j < jmax; j++) { dr = fabs(r[i][j] - rl[i][j]); if (rcrit < dr) { rcrit = dr; } } } if (rcrit <= 2e-6) { printf("Converence is done!"); convergence = 1; } else { fprintf(fp1, "%d ", iter); fprintf(fp1, "%f ", rcrit); fprintf(fp1, "%f ", dtime); fprintf(fp1, "\n"); fclose(fp1); for (int i = 0; i < imax; i++) { for (int j = 0; j < jmax; j++) { rl[i][j] = r[i][j]; } } convergence = 0; } } ``` ``` #include"_NS_H.h" void dynvis(double tr, double tout, double visr, double visout) { visout = visr * pow(tout / tr, 1.5); visout = visout * (tr + 110) / (tout + 110); } ``` ``` #include"_NS_H.h" double s[5][imax][jmax], f[5][imax][jmax], g[5][imax][jmax]; double sb[5][imax][jmax], sl[5][imax][jmax]; double txx[imax][jmax], txy[imax][jmax], tyy[imax][jmax]; double qx[imax][jmax], qy[imax][jmax]; void mac() { double dsdt; //使用MacCormack's algorithm更新流场变量 for (int i = 0; i < imax; i++) { for (int j = 0; j < jmax; j++) { s[0][i][j] = r[i][j]; s[1][i][j] = r[i][j] * u[i][j]; s[2][i][j] = r[i][j] * v[i][j]; s[3][i][j] = 0; s[4][i][j] = r[i][j] * (e[i][j] + 1 / 2 * (u[i][j] * u[i][j] + v[i][j] * v[i][j])); sl[0][i][j] = r[i][j]; sl[1][i][j] = r[i][j] * u[i][j]; sl[2][i][j] = r[i][j] * v[i][j]; sl[3][i][j] = 0; sl[4][i][j] = r[i][j] * (e[i][j] + 1 / 2 * (u[i][j] * u[i][j] + v[i][j] * v[i][j])); tauxx(i, j, 1, txx[i][j]); tauxy(i, j, 1, txy[i][j]); qcx(i, j, 1, qx[i][j]); f[0][i][j] = s[1][i][j]; f[1][i][j] = s[1][i][j] * s[1][i][j] / s[0][i][j] + p[i][j] - txx[i][j]; f[2][i][j] = s[1][i][j] * s[2][i][j] / s[0][i][j] - txy[i][j]; f[3][i][j] = 0; f[4][i][j] = (s[4][i][j] + p[i][j])*s[1][i][j] / s[0][i][j] + qx[i][j] - s[1][i][j] / s[0][i][j] * txx[i][j] - s[2][i][j] / s[0][i][j] * txy[i][j]; tauyy(i, j, 1, tyy[i][j]); tauxy(i, j, 3, txy[i][j]); qcy(i, j, 1, qy[i][j]); g[0][i][j] = s[2][i][j]; g[1][i][j] = s[1][i][j] * s[2][i][j] / s[0][i][j] - txy[i][j]; g[2][i][j] = s[2][i][j] * s[2][i][j] / s[0][i][j] + p[i][j] - tyy[i][j]; g[3][i][j] = 0; g[4][i][j] = (s[4][i][j] + p[i][j])*s[2][i][j] / s[0][i][j] + qy[i][j] - s[1][i][j] / s[0][i][j] * txy[i][j] - s[2][i][j] / s[0][i][j] * tyy[i][j]; } } //预测步 for (int i = 1; i < imax - 1; i++) { for (int j = 1; j < jmax - 1; j++) { for (int k = 0; k < 5; k++) { dsdt = (f[k][i][j] - f[k][i + 1][j]) / dx + (g[k][i][j] - g[k][i][j + 1]) / dy; sb[k][i][j] = s[k][i][j] + dsdt * dtime; } //decode the variables r[i][j] = sb[0][i][j]; u[i][j] = sb[1][i][j] / sb[0][i][j]; v[i][j] = sb[2][i][j] / sb[0][i][j]; e[i][j] = sb[4][i][j] / sb[0][i][j] - 0.5*v[i][j] * v[i][j]; if (e[i][j] < 0) { e[i][j] = 0; } t[i][j] = e[i][j] / cv; p[i][j] = r[i][j] * gascon*t[i][j]; dynvis(tr, t[i][j], visr, vis[i][j]); thermc(vis[i][j], cp, pr, kc[i][j]); a[i][j] = sqrt(gamma*gascon*t[i][j]); ma[i][j] = v[i][j] / a[i][j]; } } //更新边界条件 bc(); //使用MacCormack's algorithm更新流场变量 for (int i = 0; i < imax; i++) { for (int j = 0; j < jmax; j++) { s[0][i][j] = r[i][j]; s[1][i][j] = r[i][j] * u[i][j]; s[2][i][j] = r[i][j] * v[i][j]; s[3][i][j] = 0; s[4][i][j] = r[i][j] * (e[i][j] + 1 / 2 * (u[i][j] * u[i][j] + v[i][j] * v[i][j])); tauxx(i, j, 2, txx[i][j]); tauxy(i, j, 2, txy[i][j]); qcx(i, j, 2, qx[i][j]); f[0][i][j] = s[1][i][j]; f[1][i][j] = s[1][i][j] * s[1][i][j] / s[0][i][j] + p[i][j] - txx[i][j]; f[2][i][j] = s[1][i][j] * s[2][i][j] / s[0][i][j] - txy[i][j]; f[3][i][j] = 0; f[4][i][j] = (s[4][i][j] + p[i][j])*s[1][i][j] / s[0][i][j] + qx[i][j] - s[1][i][j] / s[0][i][j] * txx[i][j] - s[2][i][j] / s[0][i][j] * txy[i][j]; tauyy(i, j, 2, tyy[i][j]); tauxy(i, j, 4, txy[i][j]); qcy(i, j, 2, qy[i][j]); g[0][i][j] = s[2][i][j]; g[1][i][j] = s[1][i][j] * s[2][i][j] / s[0][i][j] - txy[i][j]; g[2][i][j] = s[2][i][j] * s[2][i][j] / s[0][i][j] + p[i][j] - tyy[i][j]; g[3][i][j] = 0; g[4][i][j] = (s[4][i][j] + p[i][j])*s[2][i][j] / s[0][i][j] + qy[i][j] - s[1][i][j] / s[0][i][j] * txy[i][j] - s[2][i][j] / s[0][i][j] * tyy[i][j]; } } //修正步 for (int i = 1; i < imax - 1; i++) { for (int j = 1; j < jmax - 1; j++) { for (int k = 0; k < 5; k++) { dsdt = (f[i - 1][j][k] - f[i][j][k]) / dx + (g[i][j - 1][k] - g[i][j][k]) / dy; s[i][j][k] = 0.5*(sl[i][j][k] + sb[i][j][k] + dtime * dsdt); } //decode the variables r[i][j] = sb[0][i][j]; u[i][j] = sb[1][i][j] / sb[0][i][j]; v[i][j] = sb[2][i][j] / sb[0][i][j]; e[i][j] = sb[4][i][j] / sb[0][i][j] - 0.5*v[i][j] * v[i][j]; if (e[i][j] < 0) { e[i][j] = 0; } t[i][j] = e[i][j] / cv; p[i][j] = r[i][j] * gascon*t[i][j]; dynvis(tr, t[i][j], visr, vis[i][j]); thermc(vis[i][j], cp, pr, kc[i][j]); a[i][j] = sqrt(gamma*gascon*t[i][j]); ma[i][j] = v[i][j] / a[i][j]; } } //更新边界条件 bc(); } ``` ``` #include"_NS_H.h" void mdot() { //检查质量守恒是否成立 FILE *fp3; fp3 = fopen("dmass.txt", "a"); double massin = 0.0, massout = 0.0; double dmass; for (int j = 0; j < jmax; j++) { massin += r[0][j] * u[0][j]; massout += r[imax - 1][j] * u[imax - 1][j]; } dmass = fabs(massout - massin) / massin * 100; if (dmass > 1.0) { fprintf(fp3, "%f ", dmass); fprintf(fp3, "\n"); fclose(fp3); } } ``` ``` #include"_NS_H.h" void output() { double x[imax], y[jmax]; FILE *fp2; fp2 = fopen("output.txt", "a"); for (int i = 0; i < imax; i++) { x[i] = dx * i; } for (int j = 0; j < jmax; j++) { y[j] = dy * j; } for (int i = 0; i < imax; i++) { for (int j = 0; j < jmax; j++) { fprintf(fp2, "%f ", x[i]); fprintf(fp2, "%f ", y[i]); fprintf(fp2, "%f ", u[i][j] / u0); fprintf(fp2, "%f ", v[i][j]); fprintf(fp2, "%f ", p[i][j] / p0); fprintf(fp2, "%f ", t[i][j] / t0); fprintf(fp2, "%f ", r[i][j] / r0); fprintf(fp2, "%f ", a[i][j]); fprintf(fp2, "%f ", ma[i][j]); fprintf(fp2, "\n"); } } fclose(fp2); } ``` ``` #include"_NS_H.h" void qcx(int i, int j, int icase, double qxout) { double dtdx; switch (icase) { //向前差分时 case 1: if (i == 0) { dtdx = (t[1][j] - t[0][j]) / dx; } else { dtdx = (t[i][j] - t[i - 1][j]) / dx; } break; //向后差分时 case 2: if (i == imax - 1) { dtdx = (t[imax - 1][j] - t[imax - 2][j]) / dx; } else { dtdx = (t[i + 1][j] - t[i][j]) / dx; } break; } qxout = -1 * kc[i][j] * dtdx; } ``` ``` #include"_NS_H.h" void qcy(int i, int j, int icase, double qyout) { double dtdy; switch (icase) { //向前差分时 case 1: if (j == 0) { dtdy = (t[i][1] - t[i][0]) / dy; } else { dtdy = (t[i][j] - t[i][j - 1]) / dy; } break; //向后差分时 case 2: if (j == jmax - 1) { dtdy = (t[i][jmax-1] - t[i][jmax-2]) / dy; } else { dtdy = (t[i][j+1] - t[i][j]) / dy; } break; } qyout = -1 * kc[i][j] * dtdy; } ``` ``` #include"_NS_H.h" void tauxx(int i, int j, int icase, double txx) { double dudx, dvdy; switch (icase) { //dF/dX为向前差分 case 1: if (j == 0) { dvdy = (v[i][1] - v[i][0]) / dy; } else if (j == jmax - 1) { dvdy = (v[i][jmax - 1] - v[i][jmax - 2]) / dy; } else { dvdy = (v[i][j + 1] - v[i][j - 1]) / 2 / dy; } if (i == 0) { dudx = (u[1][j] - u[0][j]) / dx; } else { dudx = (u[i][j] - u[i - 1][j]) / dx; } break; //dF/dX为向后差分 case 2: if (j == 0) { dvdy = (v[i][1] - v[i][0]) / dy; } else if (j == jmax - 1) { dvdy = (v[i][jmax - 1] - v[i][jmax - 2]) / dy; } else { dvdy = (v[i][j + 1] - v[i][j - 1]) / 2 / dy; } if (i == imax-1) { dudx = (u[imax - 1][j] - u[imax - 2][j]) / dx; } else { dudx = (u[i + 1][j] - u[i][j]) / dx; } break; } txx = vis[i][j] * (4 / 3 * dudx - 2 / 3 * dvdy); } ``` ``` #include"_NS_H.h" void tauxy(int i, int j, int icase, double txy) { double dudy, dvdx; switch (icase) { //dF/dX为向前差分 case 1: if (j == 0) { dudy = (u[i][1] - u[i][0]) / dy; } else if (j == jmax - 1) { dudy = (u[i][jmax - 1] - u[i][jmax - 2]) / dy; } else { dudy = (u[i][j + 1] - u[i][j - 1]) / 2 / dy; } if (i == 0) { dvdx = (v[1][j] - v[0][j]) / dx; } else { dvdx = (v[i][j] - v[i - 1][j]) / dx; } break; //dF/dX为向后差分 case 2: if (j == 0) { dudy = (u[i][1] - u[i][0]) / dy; } else if (j == jmax - 1) { dudy = (u[i][jmax - 1] - u[i][jmax - 2]) / dy; } else { dudy = (u[i][j + 1] - u[i][j - 1]) / 2 / dy; } if (i == imax - 1) { dvdx = (v[imax - 1][j] - v[imax - 2][j]) / dx; } else { dvdx = (v[i + 1][j] - v[i][j]) / dx; } break; //dG/dy为向前差分 case 3: if (i == 0) { dvdx = (v[1][j] - v[0][j]) / dx; } else if (i == imax - 1) { dvdx = (v[imax - 1][j] - v[imax - 2][j]) / dx; } else { dvdx = (v[i + 1][j] - v[i - 1][j]) / 2 / dx; } if (j == 0) { dudy = (u[i][1] - u[i][0]) / dy; } else { dudy = (u[i][j] - u[i][j - 1]) / dy; } break; //dG/dy为向后差分 case 4: if (i == 0) { dvdx = (v[1][j] - v[0][j]) / dx; } else if (i == imax - 1) { dvdx = (v[imax - 1][j] - v[imax - 2][j]) / dx; } else { dvdx = (v[i + 1][j] - v[i - 1][j]) / 2 / dx; } if (j == jmax-1) { dudy = (u[i][jmax - 1] - u[i][jmax - 2]) / dy; } else { dudy = (u[i][j + 1] - u[i][j]) / dy; } break; } txy = vis[i][j] * (dudy + dvdx); } ``` ``` #include"_NS_H.h" void tauyy(int i, int j, int icase, double tyy) { double dudx, dvdy; switch (icase) { //dG/dy为向前差分 case 1: if (i == 0) { dudx = (u[1][j] - u[0][j]) / dx; } else if (i == imax-1) { dudx = (u[imax - 1][j] - u[imax - 2][j]) / dx; } else { dudx = (u[i + 1][j] - u[i - 1][j]) / 2 / dx; } if (j == 0) { dvdy = (v[i][1] - v[i][0]) / dy; } else { dvdy = (v[i][j] - v[i][j - 1]) / dy; } break; //dG/dy为向后差分 case 2: if (i == 0) { dudx = (u[1][j] - u[0][j]) / dx; } else if (i == imax - 1) { dudx = (u[imax - 1][j] - u[imax - 2][j]) / dx; } else { dudx = (u[i + 1][j] - u[i - 1][j]) / 2 / dx; } if (j == jmax - 1) { dvdy = (v[i][jmax - 1] - v[i][jmax - 2]) / dy; } else { dvdy = (v[i][j + 1] - v[i][j]) / dy; } break; } tyy = vis[i][j] * (4 / 3 * dvdy - 2 / 3 * dudx); } ``` ``` #include"_NS_H.h" void thermc(double vis0, double cp, double pr, double kcout) { kcout = vis0 * cp / pr; } ``` ``` #include"_NS_H.h" double vv[imax][jmax], dtt[imax][jmax]; double rex[imax][jmax], rey[imax][jmax]; void tstep() { double vvmax = 0; double dt1, dt2, dt3; double dtmin = 1; double tf = 0.5; double rexmax = 0, reymax = 0; for (int i = 1; i < imax - 1; i++) { for (int j = 1; j < jmax - 1; j++) { vv[i][j] = 4 / 3*gamma*vis[i][j] * vis[i][j] / pr / r[i][j]; rex[i][j] = r[i][j] * u[i][j] * dx / vis[i][j]; rey[i][j] = r[i][j] * v[i][j] * dy / vis[i][j]; if (rexmax < rex[i][j]) { rexmax = rex[i][j]; } if (reymax < rey[i][j]) { reymax = rey[i][j]; } if (vvmax < vv[i][j]) { vvmax = vv[i][j]; } } } for (int i = 1; i < imax - 1; i++) { for (int j = 1; j < jmax - 1; j++) { dt1 = sqrt(u[i][j]) / dx + sqrt(v[i][j]) / dy; dt2 = dt1 + a[i][j] * sqrt(1 / (dx*dx) + 1 / (dy*dy)); dt3 = dt2 + 2 * vvmax*(1 / dx / dx + 1 / dy / dy); dtt[i][j] = 1 / dt3; if (dtmin > dtt[i][j]) { dtmin = dtt[i][j]; } } } dtime = tf * dtmin; } ```

求大神帮我看看C++代码

以下是我的.h头文件: ``` #include <vector> #include<iostream> #include <iomanip> #include <math.h> #define M_PI 3.14159265359 ////////**************定义目标状态***************//////// typedef struct strTargetState//笛卡尔坐标系位置 { double dTargetPostionX;//x double dTargetPostionY;//y double dTargetPostionZ;//z }strTargetState; vector <strTargetState> vTargetState; //////////*************定义传感器位置*************/////// typedef struct strSensorLocate//笛卡尔坐标系位置 { double dSensorX;//x double dSensorY;//y double dSensorZ;//z }strSensorLocate; strSensorLocate strSensor1; strSensorLocate strSensor2; strSensorLocate strSensor3; strSensorLocate strSensor4; //////////*************计算极坐标下位置*************////// typedef struct strTargetPolarCoordinate//极坐标下位置 { double dTargetPitch;//俯仰角 phi double dTargetAzimuth;//方位角 thita double dTargetR;//径向距离 r }strTargetPolarCoordinate; strTargetPolarCoordinate strTargetPolar; class CHuoPaoSheng721//class declaration { public: CHuoPaoSheng721(double dIvestiRg,double dFrequency,double dDetectAccur,double dMornitScope,double dDataUpdateRate, int nMaxTargetNum,bool bDamageSatus,bool bOnOffControl,double dOriginLongitude,double dOriginLatitude,double dOriginHeight, double dL,double dh,double dSoundVelocity): m_dIvestiRg(dIvestiRg), m_dFrequency(dFrequency), m_dDetectAccur(dDetectAccur), m_dMornitScope(dMornitScope), m_dDataUpdateRate(dDataUpdateRate), m_nMaxTargetNum(nMaxTargetNum), m_bDamageSatus(bDamageSatus), m_bOnOffControl(bOnOffControl), m_dOriginLongitude(dOriginLongitude), m_dOriginLatitude(dOriginLatitude), m_dOriginHeight(dOriginHeight), m_dL(dL),//传感器坐标 m_dh(dh), m_dSoundVelocity(dSoundVelocity)//声速 { }//endof CHuoPaoSheng721 构造函数初始化 ~CHuoPaoSheng721(){}//析构函数 int get_initia_Para();//系统参数初始化显示 int sys_state();//系统工作状态判断 int get_polar();//目标角度量测 private: double m_dIvestiRg;//侦查距离 double m_dFrequency;//传声器范围 double m_dDetectAccur;//侦查精度 double m_dMornitScope;//监视范围 double m_dDataUpdateRate;//数据更新率 int m_nMaxTargetNum;//最大检测目标数 bool m_bDamageSatus;//毁伤状态 1on 0off bool m_bOnOffControl;//开关机控制 1on 0off double m_dOriginLongitude;//坐标原点经度 double m_dOriginLatitude;//坐标原点纬度 double m_dOriginHeight;//坐标原点高度 double m_dL;//传感器坐标 double m_dh; double m_dSoundVelocity;//声速 double m_dr1;//距离 double m_dr2; double m_dr3; double m_dr4; double m_dtime1;//到达时间 double m_dtime2; double m_dtime3; double m_dtime4; };//end of class CHuoPaoSheng721 以下是头文件对应的.cpp文件: #include"stdafx.h" #include <vector> #include<iostream> #include <iomanip> #include <math.h> #include "CHuoPaoSheng721.h" #define M_PI 3.14159265359 using namespace std; int CHuoPaoSheng721::get_initia_Para()//系统参数初始化显示 { cout<<"侦查距离/(km):"<<setw(8)<<m_dIvestiRg<<endl; cout<<"传声器频率范围/Hz:"<<setw(8)<<m_dFrequency<<endl; cout<<"侦查精度(m):"<<setw(8)<<m_dDetectAccur<<endl; cout<<"监视范围:"<<setw(8)<<m_dMornitScope<<endl; cout<<"数据更新率:"<<setw(8)<<m_dDataUpdateRate<<endl; cout<<"最大检测目标数:"<<setw(8)<<m_nMaxTargetNum<<endl; return 0; }//end of get_initia_Para int CHuoPaoSheng721::sys_state()//系统工作状态判断 { if ((m_bDamageSatus==1) && (m_bOnOffControl==1)) { cout<<"系统正常可进行有效侦查"<<endl; } else { if (m_bDamageSatus==0) { cout<<"系统毁伤"<<endl; } if (m_bOnOffControl==0) { cout<<"系统未开机"<<endl; } }//end of if return 0; }//end of CParaInitia int CHuoPaoSheng721::get_polar() { //////////*************定义传感器位置*************///////// strSensor1.dSensorX=m_dL; strSensor1.dSensorY=0; strSensor1.dSensorZ=m_dh; strSensor2.dSensorX=-m_dL; strSensor2.dSensorY=0; strSensor2.dSensorZ=m_dh; strSensor3.dSensorX=0; strSensor3.dSensorY=-m_dL; strSensor3.dSensorZ=m_dh; strSensor4.dSensorX=0; strSensor4.dSensorY=m_dL; strSensor4.dSensorZ=0; // m_vTargetState.push_back(m_vTargetState);目标状态获得 压入数值 ///////////**********火炮声计算************//////////// for (int i=0;i<vTargetState.size();i++) { m_dr1=sqrt(pow(strSensor1.dSensorX-vTargetState[i].dTargetPostionX,2)+pow(strSensor1.dSensorY-vTargetState[i].dTargetPostionY,2)+pow(strSensor1.dSensorZ-vTargetState[i].dTargetPostionZ,2)); m_dr2=sqrt(pow(strSensor2.dSensorX-vTargetState[i].dTargetPostionX,2)+pow(strSensor2.dSensorY-vTargetState[i].dTargetPostionY,2)+pow(strSensor2.dSensorZ-vTargetState[i].dTargetPostionZ,2)); m_dr3=sqrt(pow(strSensor3.dSensorX-vTargetState[i].dTargetPostionX,2)+pow(strSensor3.dSensorY-vTargetState[i].dTargetPostionY,2)+pow(strSensor3.dSensorZ-vTargetState[i].dTargetPostionZ,2)); m_dr4=sqrt(pow(strSensor4.dSensorX-vTargetState[i].dTargetPostionX,2)+pow(strSensor4.dSensorY-vTargetState[i].dTargetPostionY,2)+pow(strSensor4.dSensorZ-vTargetState[i].dTargetPostionZ,2)); if(((m_dIvestiRg>m_dr1)&&(m_dIvestiRg>m_dr2)&&(m_dIvestiRg>m_dr3)&&(m_dIvestiRg>m_dr4))==0) { cout<<"目标超出传感器探测范围"<<endl; continue; } m_dtime1=m_dr1/m_dSoundVelocity; m_dtime2=abs(m_dr2-m_dr1)/m_dSoundVelocity; m_dtime3=abs(m_dr4-m_dr1)/m_dSoundVelocity; m_dtime4=abs(m_dr4-m_dr1)/m_dSoundVelocity; strTargetPolar.dTargetAzimuth=atan((m_dtime3-m_dtime4)/m_dtime2)/M_PI*180; strTargetPolar.dTargetPitch=acos(m_dSoundVelocity*sqrt(pow(m_dr2,2)+pow(m_dr3-m_dr4,2)/(2*m_dL))); strTargetPolar.dTargetR=(pow(m_dL,2)*(m_dtime2-m_dtime3-m_dtime4)-pow(m_dL,2)*sqrt(4*pow(m_dL,2)/pow(m_dSoundVelocity,2)-pow(m_dtime2,2)-pow(m_dtime3-m_dtime4,2)))/(m_dSoundVelocity*(pow(m_dtime2,2)+pow(m_dtime2-m_dtime3-m_dtime4,2)-4*pow(m_dL,2)/pow(m_dSoundVelocity,2))); } cout<<"目标方位角为:"<<strTargetPolar.dTargetAzimuth<<endl; cout<<"目标俯仰角为:"<<strTargetPolar.dTargetPitch<<endl; cout<<"目标径向距为:"<<strTargetPolar.dTargetR<<endl; return 0; }//end of get_polar ``` 编译的时候报错: --------------------Configuration: huo_pao_sheng721 - Win32 Debug-------------------- Compiling... CHuoPaoSheng721.cpp d:\vc6.0\msdev98\myprojects\huo_pao_sheng721\chuopaosheng721.h(17) : error C2143: syntax error : missing ';' before '<' d:\vc6.0\msdev98\myprojects\huo_pao_sheng721\chuopaosheng721.h(17) : error C2501: 'vector' : missing storage-class or type specifiers d:\vc6.0\msdev98\myprojects\huo_pao_sheng721\chuopaosheng721.h(17) : error C2143: syntax error : missing ';' before '<' D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(68) : error C2065: 'vTargetState' : undeclared identifier D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(68) : error C2228: left of '.size' must have class/struct/union type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(70) : error C2109: subscript requires array or pointer type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(70) : error C2228: left of '.dTargetPostionX' must have class/struct/union type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(70) : error C2109: subscript requires array or pointer type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(70) : error C2228: left of '.dTargetPostionY' must have class/struct/union type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(70) : error C2109: subscript requires array or pointer type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(70) : error C2228: left of '.dTargetPostionZ' must have class/struct/union type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(71) : error C2109: subscript requires array or pointer type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(71) : error C2228: left of '.dTargetPostionX' must have class/struct/union type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(71) : error C2109: subscript requires array or pointer type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(71) : error C2228: left of '.dTargetPostionY' must have class/struct/union type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(71) : error C2109: subscript requires array or pointer type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(71) : error C2228: left of '.dTargetPostionZ' must have class/struct/union type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(72) : error C2109: subscript requires array or pointer type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(72) : error C2228: left of '.dTargetPostionX' must have class/struct/union type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(72) : error C2109: subscript requires array or pointer type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(72) : error C2228: left of '.dTargetPostionY' must have class/struct/union type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(72) : error C2109: subscript requires array or pointer type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(72) : error C2228: left of '.dTargetPostionZ' must have class/struct/union type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(73) : error C2109: subscript requires array or pointer type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(73) : error C2228: left of '.dTargetPostionX' must have class/struct/union type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(73) : error C2109: subscript requires array or pointer type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(73) : error C2228: left of '.dTargetPostionY' must have class/struct/union type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(73) : error C2109: subscript requires array or pointer type D:\VC6.0\MSDev98\MyProjects\huo_pao_sheng721\CHuoPaoSheng721.cpp(73) : error C2228: left of '.dTargetPostionZ' must have class/struct/union type Error executing cl.exe. huo_pao_sheng721.exe - 29 error(s), 0 warning(s) 有好多是关于vector的,应该怎么改呢,怎么调通程序呢,小白真的不会了。大神们请帮帮忙。

c++模板和container混用导致出现的问题,c2662指针无法从const type转换成type &?

#ifndef DATATABLE_H #define DATATABLE_H #include<iostream> #include<string> #include<deque> #include<vector> #include <utility> #include<math.h> using namespace std; extern int FW; namespace sict { template<typename T> class DataTable { float Ymean = 0.0; float Ysigma = 0.0; deque<T> buffer; typename std::deque<T>::iterator i; public: T sigmaCalculator(deque<T>); DataTable(ifstream & ifile) { float reader1; float reader2=0.0; float reader2Buffer; if (ifile.is_open()) { while (ifile) { ifile >> reader1 >> reader2; reader2Buffer += reader2; buffer.push_back(reader1); buffer.push_back(reader2); } } Ymean = reader2Buffer / buffer.size() / 2; ifile.close(); } void displayData(std::ostream& os) const { os << "Data Values" << endl; os << "------------" << endl; os.width(FW); os << "x"; os.width(FW); os << "y" << endl; for (i = buffer.begin(); i != buffer.end(); i+2) { os.width(FW); os << *i; os.width(FW); os << *(++i) << endl; } } void displayStatistics(std::ostream& os)const{ os << "Statistics" << endl; os << "----------" << endl; os << " y mean ="; os.width(FW); os << Ymean << endl; os << " y sigma ="; os.width(FW); Ysigma = sigmaCalculator(buffer); os << Ysigma << endl; } }; template<typename T> T DataTable<T>::sigmaCalculator(deque<T> input) { float tempForMeanDifference = new float[input.size()]; float sumBuffer = 0.0; for (int num = 0; num < input.size(); num++) { tempForMeanDifference[num] = input[num] - Ymean; tempForMeanDifference[num] = pow(tempForMeanDifference[num], 2); } for (int num = 0; num < input.size(); num++) { sumBuffer = sumBuffer + tempForMeanDifference[num]; } sumBuffer = sumBuffer / input.size(); sumBuffer = sqrt(sumBuffer); delete []tempForMeanDifference; return sumBuffer; } } #endif // DATATABLE_H //////////////////////////////////以上是头文件,就是出问题的内容 ``` // Workshop 7 - STL Algorithms // w7.cpp // updated by Cornel on 18.10.2018 // updated by Chris Szalwinski // 2019/03/10 #include <iostream> #include <fstream> #include <string> #include "DataTable.h" #include "DataTable.h" // this is intentional using namespace std; int FW = 8; // field width int ND = 4; // precision for numbers // Reports the Statistics for file named pFileName // void processFile(const char* pFileName) { cout << endl; cout << "****************************************" << endl; cout << "*** Processing file [" << pFileName << "]" << endl; cout << "****************************************" << endl; std::ifstream dataFile(pFileName); if (!dataFile) { cerr << endl << "***Failed to open file " << pFileName << "***" << endl; return; } try { sict::DataTable<float> data(dataFile); cout << endl; data.displayData(cout); data.displayStatistics(cout); } catch (std::string& msg) { cout << "ERROR: " << msg << endl; } } int main(int argc, char** argv) { #ifndef SICT_DATA_TABLE_H cout << "Improper header guard for DataTable.h! Follow the convention " << "SICT_DATA_TABLE_H when defining a header guard.\n"; #endif cout << "Command Line: " << argv[0]; for (int i = 1; i < argc; i++) cout << " " << argv[i]; cout << endl; if (argc < 2) { cerr << endl << "***Incorrect number of arguments***" << endl; return 1; } for (int i = 1; i < argc; ++i) processFile(argv[i]); } /////////////////////////这里是固定的地方,不用查找错误 ``` 大家好,最近开始学容器和迭代器,发现了一个奇怪的问题,就是明明没有declare任何函数或变量是const,然而编译器却说无法转换,会不会是有些隐式转换我没有意识到啊?谢谢大家

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

一文带你入门Java Stream流,太强了

两个星期以前,就有读者强烈要求我写一篇 Java Stream 流的文章,我说市面上不是已经有很多了吗,结果你猜他怎么说:“就想看你写的啊!”你看你看,多么苍白的喜欢啊。那就“勉为其难”写一篇吧,嘻嘻。 单从“Stream”这个单词上来看,它似乎和 java.io 包下的 InputStream 和 OutputStream 有些关系。实际上呢,没毛关系。Java 8 新增的 Stream 是为...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

立即提问
相关内容推荐