二维数组函数传递格式。解决方法
二维数组函数传递格式。。
实在没法了,书上只讲了一个二维数组的传递,题里面却有2个数组传递。。
int sum(int ar[][4],int rows);//一个数组声明
sum(ar,ROWS); //调用
int sum(int ar[][4],int rows)//定义
可2个数组怎么传递呢。。试了很多种办法。。老是出错
------解决方案--------------------
实在没法了,书上只讲了一个二维数组的传递,题里面却有2个数组传递。。
int sum(int ar[][4],int rows);//一个数组声明
sum(ar,ROWS); //调用
int sum(int ar[][4],int rows)//定义
可2个数组怎么传递呢。。试了很多种办法。。老是出错
- C/C++ code
#include<stdio.h> #define ROWS 3 void copy_arr(double *,double *); int main(void) { double source[3][4]={ {1.0,3.0,5.1,7.2}, {2.1,4.3,6.5,8.7}, {9.1,10.2,11.5,12.8} }; double target1[3][4]; int i,m; printf("source[3][4] is:\n"); for(i=0;i<3;i++) for(m=0;m<4;m++) printf("%.1lf",source[3][4]); copy_arr(source,target1); printf("target1[3][4] is:\n"); for(i=0;i<3;i++) for(m=0;m<4;m++) printf("%.2lf",target1[3][4]); return 0; } void copy_arr(double source[][4],target1[][4]) { int i,m; for(i=0;i<3;i++) for(m=0;m<4;m++) target1[i][m]=source[i][m]; return 0; }
- C/C++ code
error C2660: 'copy_arr' : function does not take 2 parameters D:\Program Files\Microsoft Visual Studio\MyProjects\lianxi1006\1.cpp(28) : error C2061: syntax error : identifier 'target1' D:\Program Files\Microsoft Visual Studio\MyProjects\lianxi1006\1.cpp(33) : error C2065: 'target1' : undeclared identifier D:\Program Files\Microsoft Visual Studio\MyProjects\lianxi1006\1.cpp(33) : error C2109: subscript requires array or pointer type D:\Program Files\Microsoft Visual Studio\MyProjects\lianxi1006\1.cpp(33) : error C2109: subscript requires array or pointer type D:\Program Files\Microsoft Visual Studio\MyProjects\lianxi1006\1.cpp(33) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data D:\Program Files\Microsoft Visual Studio\MyProjects\lianxi1006\1.cpp(33) : error C2106: '=' : left operand must be l-value D:\Program Files\Microsoft Visual Studio\MyProjects\lianxi1006\1.cpp(34) : error C2562: 'copy_arr' : 'void' function returning a value D:\Program Files\Microsoft Visual Studio\MyProjects\lianxi1006\1.cpp(28) : see declaration of 'copy_arr' 执行 cl.exe 时出错. 1.obj - 1 error(s), 0 warning(s)
------解决方案--------------------
- C/C++ code
#include<stdio.h> #define ROWS 3 void copy_arr(double source[][4],double target1[][4]); int main(void) { double source[3][4]={ {1.0,3.0,5.1,7.2}, {2.1,4.3,6.5,8.7}, {9.1,10.2,11.5,12.8} }; double target1[3][4]; int i,m; printf("source[3][4] is:\n"); for(i=0;i<3;i++) for(m=0;m<4;m++) printf("%.1lf",source[i][m]); copy_arr(source,target1); printf("target1[3][4] is:\n"); for(i=0;i<3;i++) for(m=0;m<4;m++) printf("%.2lf",target1[i][m]); getchar(); return 0; } void copy_arr(double source[][4],double target1[][4]) { int i,m; for(i=0;i<3;i++) for(m=0;m<4;m++) target1[i][m]=source[i][m]; }