当前位置:编程学习 > VC++ >>

用VC++计算行列式的一个问题

以下是计算n阶行列式的正确程序,我需要把核心程序提取出来,但提出来后总出错,错误为: warning C4091: '' : ignored on left of 'float' when no variable is declared error C2143: syntax error : missing ';' before 'constant' fatal error C1004: unexpected end of file found --------------------------------- 代码为: include <stdio.h> #define MAX 20 float value(int n,float *a) { float sum=0;/*符号为+*/ float sub=0;/*符号为-*/ int i; if(!n) return 0.0; if(n==1) return a[0]; if(n==2) return a[0]*a[3]-a[1]*a[2]; for(i=0;i<n;i++) { { float total=1.0; int row=0,con; int num=0; for(con=i;con<n;con++,row++){ total*=a[row*n+con]; num++;} row=num; for(con=0;row<n&&num!=n;con++,row++) total*=a[row*n+con]; sum+=total; } { float total=1.0; int row=0,con; int num=0; for(con=i;con>=0;con--,row++){ total*=a[row*n+con]; num++;} row=num; for(con=n-1;row<n&&num!=n;con--,row++) total*=a[row*n+con]; sub+=total; } } return sum-sub; } void main() { int n; /*阶数*/ int i; float a[MAX*MAX]; float result; printf("\n输入阶数(<%d):",MAX); scanf("%d",&n); printf("\n依序输入行列式(行展开的顺序):\n"); for(i=0;i<n*n;i++) scanf("%f",&a[i]); printf("\n******输入的行列式******\n"); for(i=0;i<n*n;i++){ printf("%f\t",a[i]); if(i%n==n-1) printf("\n");} result=value(n,a); printf("***行列式结果为:%f \n",result); } 请帮我分析一下怎么调用。
补充:提取出来的是:float   value(int   n,float   *a)  这个函数,
出错的地方也在这里。

上述程序本身没有问题,但我把float   value(int   n,float   *a) 函数提出来放到另一个程序里就出问题了:
float   value(int   n,float   *a)  这一行问题为
“ignored on left of 'float' when no variable is declared ”
和
“syntax error : missing ';' before 'constant'”。
不明白怎么改
------------------------
我用的是VC++6.0,上面程序本身编译可通过,但把函数提出来就通不过了。
追问:我用的是VC++6.0,上面程序本身编译可通过,但把函数提出来就通不过了。

你有qq吗?我的QQ:2239035691,能加我吗?我急着用
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,