二维数组函数传递格式。。
实在没法了,书上只讲了一个二维数组的传递,题里面却有2个数组传递。。
int sum(int ar[][4],int rows);//一个数组声明
sum(ar,ROWS); //调用
int sum(int ar[][4],int rows)//定义
可2个数组怎么传递呢。。试了很多种办法。。老是出错
#include<stdio.h>#define ROWS 3void 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;} error C2660: 'copy_arr' : function does not take 2 parametersD:\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 identifierD:\Program Files\Microsoft Visual Studio\MyProjects\lianxi1006\1.cpp(33) : error C2109: subscript requires array or pointer typeD:\Program Files\Microsoft Visual Studio\MyProjects\lianxi1006\1.cpp(33) : error C2109: subscript requires array or pointer typeD:\Program Files\Microsoft Visual Studio\MyProjects\lianxi1006\1.cpp(33) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of dataD:\Program Files\Microsoft Visual Studio\MyProjects\lianxi1006\1.cpp(33) : error C2106: '=' : left operand must be l-valueD:\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)
#include<stdio.h>#define ROWS 3void 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];}