首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

二维数组函数传递格式。解决方法

2012-05-09 
二维数组函数传递格式。。实在没法了,书上只讲了一个二维数组的传递,题里面却有2个数组传递。。int sum(int ar

二维数组函数传递格式。。
实在没法了,书上只讲了一个二维数组的传递,题里面却有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 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;}    

C/C++ code
 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)


[解决办法]
C/C++ code
#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];} 

热点排行