c语言中直接输出一个二维数组是用数组来访问输出的,例子:
#include<stdio.h>#define M 4
#define N 3
void main()
{
int a[M][N],i,j
for(i=0i<Mi++)
for(j=0j<Nj++)
a[i][j]=3*i+j
for(i=0i<Mi++)
{ for(j=0j<Nj++)
printf("%d\t",a[i][j])//直接用数组来访问
printf("\n")
}
}
除了可以直接访问,也可以用指针来访问,用指针指向该数组,便可进行对数组的读写操作。
运行结果图:
1.在你的程序中有这么一句for(i=9i<=9i++){
for(r=9r<=9r++)
在for循环语句中表达式1,也就是相当于i=0这一句,初值表达式,是对循环变量赋初值的,输出a[i][r]当然要从i=0,r=0开始。
2.for循环中,表达式2,也就是本题中的i<9,是循环的条件,有时也可以说是循环的次数。
3.注意,在数组中,下标的合理长度是[0,
数组长度减1].所以应该是
for(i=0i<9i++){
for(r=0r<9r++)
修改后如下:
#include"stdio.h"
void
main()
{
int
a[9][9]={
{10,11,15,19,18,45,66,22,99},
{50,40,61,85,67,41,63,51,30},
{25,29,84,66,11,26,18,59,19},
{10,88,98,89,31,36,39,28,32},
{22,34,41,32,75,73,78,45,11},
{12,35,38,23,21,59,17,44,47},
{31,41,16,76,91,16,14,67,42},
{49,54,59,56,87,78,25,26,93},
{60,34,34,32,56,33,38,37,95}
},i,r
for(i=0i<9i++){
for(r=0r<9r++)
printf("%3d",a[i][r])
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开始到数组长度。