繁体   English   中英

将多维数组传递给函数

[英]Passing multidimensional arrays to a function

程序的要点是将数据从1个数组发送到另一个数组我不知道我如何传递数据有什么问题。 它应该输入1个数组中的数据然后调用copy函数并将其自身放在那里然后遍历数组。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<limits.h>
#include<math.h>
#include<ctype.h>
#include<stdbool.h>


double copy_arr(double source[n][u],double target[n][u],int n,int u);

int main(void)
{
    double source[3][5]={{1.1,2.2,3.3,4.4,5.5},
                 {1.1,2.2,3.3,4.4,5.5},
                     {1.1,2.2,3.3,4.4,5.5}};
    double target1[3][5];


    copy_arr(source,target1,3,5);

    int j;
    int i;
    for(i=0;i<3;i++)
    {
        for(j=0;j<5;j++)
        {
        printf("%f 1",target1[i][j]);

        }
    }



    return 0;
}

double copy_arr(double source[][],double target[][],int n,int u)
{
    int i,j;
    for(i=0;i<n;i++)
    {
       for(j=0;j<u;j++)
       {
          target[i][j] = source[i][j];
       }
    }

    return target[n][u];
}

你的函数原型是错误的,因为编译器还没有看到nu 你的程序甚至没有编译。 更改

 double copy_arr(double source[n][u],double target[n][u],int n,int u);  

 double copy_arr(int n,int u,double source[n][u],double target[n][u]);

或者你可以做硬编码的数组大小

#define SIZE_ARR 5

void copy_arr(double source[][SIZE_ARR], double target[][SIZE_ARR], int n, int u);

int main(void)
{
    double source[3][SIZE_ARR]={{1.1,2.2,3.3,4.4,5.5},
                         {1.1,2.2,3.3,4.4,5.5},
                         {1.1,2.2,3.3,4.4,5.5}};
    double target1[3][SIZE_ARR];


    copy_arr(source,target1, 3, 5);

    int j;
    int i;
    for(i=0;i<3;i++)
    {
        for(j=0;j<5;j++)
        {
            printf("%f 1",target1[i][j]);
        }
    }

    return 0;
}

void copy_arr(double source[][SIZE_ARR], double target[][SIZE_ARR], int n, int u)
{
    int i,j;
    for(i=0;i<n;i++)
    {
       for(j=0;j<u;j++)
       {
          target[i][j] = source[i][j];
       }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM