- 论坛徽章:
- 0
|
回复 #4 openspace 的帖子
A[j]+=pow(readfile.t[k],j);
编译的时候没抱错,但是单步调试这个求和抱错:
Unhanlded expction in test.exe:0xc0000005 Access Violation
代码如下,我的A是二维数组,ReadFile是自己定义的另一个类:
- bool XSJZA::createA(ReadFile& readfile)
- {
- int i=0,j=0,k=0,m=readfile.m;
- if(0==i)
- {printf("in createA!\n");
- for(j=0;j<pow((n+1),(n+1));j++)
- if(j>=0 && j<=n)
- for(k=0;k<m;k++)
- A[i][j]+=pow(readfile.t[k],j);
- else if((j>=n+1) && (j<=2*n+1))
- for(k=0;k<m;k++)
- A[i][j]+=pow(readfile.t[k],(j-(n+1)))*readfile.p[k];
- else if((j>=2*(n+1)) && (j<=3*n+2))
- for(k=0;k<m;k++)
- A[i][j]+=pow(readfile.t[k],(j-2*(n+1)))*readfile.p[k]*readfile.p[k];
- else if((j>=3*(n+1)) && (j<=4*n+3))
- for(k=0;k<m;k++)
- A[i][j]+=pow(readfile.t[k],(j-3*(n+1)))*readfile.p[k]*readfile.p[k]*readfile.p[k];
- else if((j>=4*(n+1)) && (j<=5*n+4))
- for(k=0;k<m;k++)
- A[i][j]+=pow(readfile.t[k],(j-4*(n+1)))*readfile.p[k]*readfile.p[k]*readfile.p[k]*readfile.p[k];
- else if((j>=5*(n+1)) && (j<=6*n+5))
- for(k=0;k<m;k++)
- A[i][j]+=pow(readfile.t[k],(j-5*(n+1)))*readfile.p[k]*readfile.p[k]*readfile.p[k]*readfile.p[k]*readfile.p[k];
- }
- for(i=1;i<pow((n+1),(n+1));i++)
- {
- for(j=0;j<pow((n+1),(n+1));j++)
- if(j>=0 && j<=n)
- for(k=0;k<m;k++)
- A[i][j]+=pow(readfile.t[k],j)*A[0][i];
- else if((j>=n+1) && (j<=2*n+1))
- for(k=0;k<m;k++)
- A[i][j]+=pow(readfile.t[k],(j-(n+1)))*readfile.p[k]*A[0][i];
- else if((j>=2*(n+1)) && (j<=3*n+2))
- for(k=0;k<m;k++)
- A[i][j]+=pow(readfile.t[k],(j-2*(n+1)))*readfile.p[k]*readfile.p[k]*A[0][i];
- else if((j>=3*(n+1)) && (j<=4*n+3))
- for(k=0;k<m;k++)
- A[i][j]+=pow(readfile.t[k],(j-3*(n+1)))*readfile.p[k]*readfile.p[k]*readfile.p[k]*A[0][i];
- else if((j>=4*(n+1)) && (j<=5*n+4))
- for(k=0;k<m;k++)
- A[i][j]+=pow(readfile.t[k],(j-4*(n+1)))*readfile.p[k]*readfile.p[k]*readfile.p[k]*readfile.p[k]*A[0][i];
- else if((j>=5*(n+1)) && (j<=6*n+5))
- for(k=0;k<m;k++)
- A[i][j]+=pow(readfile.t[k],(j-5*(n+1)))*readfile.p[k]*readfile.p[k]*readfile.p[k]*readfile.p[k]*readfile.p[k]*A[0][i];
- }
-
- for(i=0;i<pow((n+1),(n+1));i++)
- {
- for(j=0;j<pow((n+1),(n+1));j++)
- printf("%f\t",A[i][j]);
- printf("\n");
- }
- return true;
- }
复制代码
[ 本帖最后由 light511 于 2009-7-8 18:23 编辑 ] |
|