返回信息流编程环境:VS2010
语言:C
我定义的一个子函数代码:
//选列主元函数
float zu(float alfa,float eps,int n,int i,float parameter[][20])
{
int ir,m,ic;
float temp;
alfa=fabs(parameter[i][i]);
m=i;
for(ir=i;i<n;ir++)
{
if(fabs(parameter[ir][i])>alfa)
{
alfa=parameter[ir][i];
m=ir;
}
}
if(alfa<eps)
{
deta=0.0;
return(alfa);
}
alfa=parameter[m][i];
if(m==i)
return(alfa);
for(ic=i;ic<n+1;ic++)
{
temp=parameter[m][ic];
parameter[m][ic]=parameter[i][ic];
parameter[i][ic]=temp;
}
return(alfa);
}
报错:
1>------ 已启动生成: 项目: Gauss-Jordan Elimination, 配置: Debug Win32 ------
1>生成启动时间为 2013/10/23 21:07:48。
1>ClCompile:
1> Gauss-Jordan Elimination.c
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(90): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(93): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(95): error C2065: “m”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(96): error C2065: “ir”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(96): error C2065: “ir”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(98): error C2065: “ir”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(100): error C2065: “ir”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(101): error C2065: “m”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(101): error C2065: “ir”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(109): error C2065: “m”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(110): error C2065: “m”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(112): error C2065: “ic”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(112): error C2065: “ic”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(112): error C2065: “ic”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(114): error C2065: “temp”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(114): error C2065: “m”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(114): error C2065: “ic”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(115): error C2065: “m”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(115): error C2065: “ic”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(115): error C2065: “ic”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(116): error C2065: “ic”: 未声明的标识符
1>d:\my documents\visual studio 2010\projects\gauss-jordan elimination\gauss-jordan elimination\gauss-jordan elimination.c(116): error C2065: “temp”: 未声明的标识符
1>
1>生成失败。
1>
1>已用时间 00:00:00.10
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
详细截图见附件:
LZ实在是看不出来第一个大括号哪里错了导致后面的一堆问题,求帮助~~
这是一条镜像帖。来源:北邮人论坛 / cpp / #74731同步于 2013/10/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[问题]子函数定义出错(附程序和错误码)
laqieer
2013/10/23镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
float zu(float alfa,float eps,int n,int i,float parameter[][20])
to
float zu(float alfa,float eps,int n,int i,float** parameter)
感谢回答,不过错误依旧
【 在 iFadeToBlack 的大作中提到: 】
: float zu(float alfa,float eps,int n,int i,float parameter[][20])
: to
: float zu(float alfa,float eps,int n,int i,float** parameter)
应该不是parameter的问题,因为我另一个子函数就是这么传参的,没有报错,编译系统可以识别float parameter,就算我不写后面2个方括号也可以
数组作为形参传的应该是二维数组parameter的首地址
【 在 iFadeToBlack 的大作中提到: 】
: float zu(float alfa,float eps,int n,int i,float parameter[][20])
: to
: float zu(float alfa,float eps,int n,int i,float** parameter)
非常感谢各位热心的朋友,我已经找到错误并解决了.
原因:上一个子函数guass结尾少了一个大括号,所以下一个函数的定义就出问题了
PS:编译提示的是zu函数的错,所以我就没注意到这个问题,之后偶然发现代码的自动排版很奇怪,所以发现了= =
【 在 FromSixToTen 的大作中提到: 】
: 我可以远程帮你调一下
不好意思,C#写多都忘记C/C++里数组怎么写的了
【 在 laqieer 的大作中提到: 】
: 应该不是parameter的问题,因为我另一个子函数就是这么传参的,没有报错,编译系统可以识别float parameter,就算我不写后面2个方括号也可以
: 数组作为形参传的应该是二维数组parameter的首地址
: [upload=1][/upload]