Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 打印多维数组的值_Arrays_C_Function_Multidimensional Array - Fatal编程技术网

Arrays 打印多维数组的值

Arrays 打印多维数组的值,arrays,c,function,multidimensional-array,Arrays,C,Function,Multidimensional Array,祝你节日快乐 我是C的初学者 我在学C 我正在解决一个二维数组的问题 问题是我必须获取多维数组的值并打印它们 印刷的方式应该是这样的: 2 3 4 5 6 7 /* Array is like- { {2,3}, {4,5}, {6,7} } */ 所以我想问题已经解决了 我的代码给了我很多错误 #include <stdio.h> void display(int ptr[] ,int n,int nt); int main(){ int arr[3]

祝你节日快乐

我是C的初学者

我在学C

我正在解决一个二维数组的问题

问题是我必须获取多维数组的值并打印它们

印刷的方式应该是这样的:

2 3
4 5
6 7

/*
Array is like-
{
{2,3},
{4,5},
{6,7}
}
*/

所以我想问题已经解决了


我的代码给了我很多错误


#include <stdio.h>

void display(int ptr[] ,int n,int nt);

int main(){
    
    int arr[3][2];
    
    
    for(int i=0 ; i<3 ; i++){
        for(int j=0 ; j<2 ; j++){
            scanf("%d", &arr[i][j]);
        }
    }

    
    
    display(arr,3,2);

    return 0;
}


void display(int ptr[],int n,int nt){
        
    for(int i=0 ; i<n ; i++){
        for(int j=0 ; j<nt ; j++){
            printf("%d", ptr[i][j]);
        }
        printf("\n");
    }
}


arr
int[3][3]
)的类型与
ptr
int[]
)不匹配。要使其正常工作,您必须更改
ptr
的类型:

void display( int ptr[][3], int n, int nt )
{
  ...
}
或者,您需要假装
arr
是1D数组-您可以通过显式传递第一个元素的地址来实现:

display( &arr[0][0], 3, 3 );
然后在
display
中使用一个下标:

printf( "%d", ptr[i * n + j] );

对于一个完全的初学者,我认为你要通过多维数组,你需要在参数中提到界

注:-不需要内边界,但需要外边界

在上述情况下

void display(int ptr[][3] ,int n,int nt);
定义函数时也是如此 那是

void显示(int ptr[][3],int n,int nt){

对于(int i=0;i)“我的代码给了我很多错误”哪一个?请在这里以文本形式逐字引用它们。您显示了2x3数组的计算结果,并编写了3x3数组的代码。有什么不同的原因吗?我已经用错误编辑了这个问题。这对我来说更难了。非常感谢您如此清晰的理解嘿,我能请您帮忙吗。
void display(int ptr[][3] ,int n,int nt);
void display(int ptr[][3],int n,int nt){
    
    for(int i=0 ; i<n ; i++){
        for(int j=0 ; j<nt ; j++){
            printf("%d", ptr[i][j]);
        }
        printf("\n");
    }
}
#include <stdio.h>

void display(int ptr[][3],int n,int nt);

int main(){

    int arr[3][3];


    for(int i=0 ; i<3 ; i++){
        for(int j=0 ; j<3 ; j++){
            scanf("%d", &arr[i][j]);
        }
    }

    display(arr,3,3);

    return 0;
}


void display(int ptr[][3],int n,int nt){
    
    for(int i=0 ; i<n ; i++){
        for(int j=0 ; j<nt ; j++){
            printf("%d", ptr[i][j]);
        }
        printf("\n");
    }
}
#include <stdio.h>

void display(int *ptr,int n,int nt);

int main(){
 
    int arr[3][3];
    for(int i=0 ; i<3 ; i++){
        for(int j=0 ; j<3 ; j++){
            scanf("%d", &arr[i][j]);
        }
    }
    //passing the pointer to first element
    display(&arr[0][0],3,3);
    return 0;
}


void display(int *ptr,int n,int nt){        
    for(int i=0 ; i<n ; i++){
        for(int j=0 ; j<nt ; j++){
            printf("%d",*((ptr+i*n)+j));
        }
        printf("\n");
    }
}