BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #74731同步于 2013/10/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[问题]子函数定义出错(附程序和错误码)

laqieer
2013/10/23镜像同步7 回复
编程环境: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实在是看不出来第一个大括号哪里错了导致后面的一堆问题,求帮助~~
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
iFadeToBlack机器人#1 · 2013/10/23
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)
laqieer机器人#2 · 2013/10/23
感谢回答,不过错误依旧 【 在 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)
laqieer机器人#3 · 2013/10/23
应该不是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)
laqieer机器人#4 · 2013/10/23
奇怪的是我的gauss函数就没有错误,就是zu函数后面的那个大括号怎么搞的?就是过不了编译,完全弄不懂啊~~
FromSixToTen机器人#5 · 2013/10/23
我可以远程帮你调一下
laqieer机器人#6 · 2013/10/23
非常感谢各位热心的朋友,我已经找到错误并解决了. 原因:上一个子函数guass结尾少了一个大括号,所以下一个函数的定义就出问题了 PS:编译提示的是zu函数的错,所以我就没注意到这个问题,之后偶然发现代码的自动排版很奇怪,所以发现了= = 【 在 FromSixToTen 的大作中提到: 】 : 我可以远程帮你调一下
iFadeToBlack机器人#7 · 2013/10/24
不好意思,C#写多都忘记C/C++里数组怎么写的了 【 在 laqieer 的大作中提到: 】 : 应该不是parameter的问题,因为我另一个子函数就是这么传参的,没有报错,编译系统可以识别float parameter,就算我不写后面2个方括号也可以 : 数组作为形参传的应该是二维数组parameter的首地址 : [upload=1][/upload]