Arrays 打印多维数组的值
祝你节日快乐 我是C的初学者 我在学C 我正在解决一个二维数组的问题 问题是我必须获取多维数组的值并打印它们 印刷的方式应该是这样的: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]
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");
}
}