重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
c语言中直接输出一个二维数组是用数组来访问输出的,例子:
红安ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
#includestdio.h
#define M 4
#define N 3
void main()
{
int a[M][N],i,j;
for(i=0;iM;i++)
for(j=0;jN;j++)
a[i][j]=3*i+j;
for(i=0;iM;i++)
{ for(j=0;jN;j++)
printf("%d\t",a[i][j]);//直接用数组来访问
printf("\n");
}
}
除了可以直接访问,也可以用指针来访问,用指针指向该数组,便可进行对数组的读写操作。
运行结果图:
int output2dArr(int rows,int cols ,int arr[rows][cols]);你这个函数定义就有问题。因为定义数组时必须定义数组的大小。你可以这样写int output2dArr(int rows,int cols ,int arr[ ][ ]);
还有你没有理解数组,定义数组的时候就需要为数组开辟一块空间,这个空间开辟后就不能再增加了。还有c语言不同于c++。c语言的定义是必须放在最前面的,而c++只需要先定义再使用就可以了。你把数组的大小改为定值就可以了。必须是常数
#include stdio.h
#include stdlib.h
int main()
{
int a[2][2];
int i,j;
for (i=0;i2;i++)
{
for (j=0;j2;j++)
{
scanf("%d ",a[i][j]);
}
}
for(i=0;i2;i++)
for(j=0;j2;j++)
printf("%d",a[i][j]);
return 0;
}
运行成功
这样就可以了:
#includestdio.h
#define N 10
main()
{
int shuzu[10][10]={
{1,1,1,1,1,1,1,1,1,1},
{1,0,0,0,0,0,0,1,1,1},
{1,0,1,1,1,0,1,1,1,1},
{1,0,1,1,1,0,0,1,1,1},
{1,0,1,1,1,1,1,1,1,1},
{1,0,1,1,1,1,1,1,1,1},
{1,0,0,0,0,0,0,0,1,1},
{1,1,1,0,1,0,1,0,1,1},
{1,1,1,0,0,0,1,0,0,1},
{1,1,1,1,1,1,1,1,1,1}
};
int i,j;
for(i=0;i10;i++)
{
for(j=0;j10;j++)
printf("%d",shuzu[i][j]);
printf("\n");
}
}
假设需要打印的数组为int类型,数组名为Array,Dim1为数组的行,Dim2为数组的列。
int i,j;//临时变量
for(i = 0; i Dim1; i++)//外层循环遍历行
for(j = 0; j Dim2; j++)//内层循环遍历列
{
printf("%d ",Array[i][j]);//访问数组元素并打印
}
打印数组时(无论几维)都要注意数组下标从0开始,除非刻意放弃下标为0的元素,多存一个元素,此时for循环范围则可从1开始到数组长度。