二位数组的定义:
int arr[3][4];
//第一个[]里面的值表示行数,第二个[]里面的值表示列数
//arr数组有3行4列
//三行:0~2行 四列:0~3列
二维数组的遍历:
#include<stdio.h>
void test04()
{
int arr[3][4];//局部数组不初始化元素内容不确定
int j = 0;
int i = 0;
for(i=0;i<3;i++)
{
//遍历第0行
for(j=0;j<4;j++)
{
printf("%d ",arr[j]);
}
printf("\n");
}
}
int main(int argc,char *argv[])
{
test04();
return 0;
}
运行结果:
-858993460 -858993460 -858993460 -858993460
-858993460 -858993460 -858993460 -858993460
-858993460 -858993460 -858993460 -858993460
Press any key to continue
二位数组的初始化
分段初始化:用{}里面的{}明确的表示一行
int arr[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };
连续初始化:放满一行,才能放下一行
int arr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
案例:
#include<stdio.h>
void test06()
{
int arr1[3][4]={ {1,2},{3},{4,5} };
int arr2[3][4]={ 1,2,3,4,5 };
printf("%d\n",arr1[1][2] + arr2[1][2]); // 0
}
int main(int argc,char *argv[])
{
test06();
return 0;
}
作业:定义int arr[3][4]的二位数组,获取键盘输入,并求出每一行平均值
#include<stdio.h>
void test06()
{
int arr[3][4] = {0};
double num = 0;
int i = 0,j = 0;
//获取键盘输入
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&arr[j]);
}
}
for(i=0;i<3;i++)
{
//求每一行的平均值
num = 0;
for(j=0;j<4;j++)
{
[i] num += arr[j];
}
printf("第%d行的平均值 = %f\n",i,num/4);
}
}
int main(int argc,char *argv[])
{
test06();
return 0;
}
运行结果:
1 2 3 4
5 6 7 8
9 10 11 12
第0行的平均值 = 2.500000
第1行的平均值 = 6.500000
第2行的平均值 = 10.500000
Press any key to continue
案例:
求每列的平均值
#include<stdio.h>
//求每列的平均值
void test07()
{
int arr[3][4] = {0};
double num = 0;
int i = 0,j = 0;
//获取键盘输入
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&arr[j]);
}
}
for(j=0;j<4;j++)
{
num = 0;
for(i=0;i<3;i++)
{
num += arr[j];
}
printf("第%d列的平均值 = %f\n",j,num/3);
}
}
int main(int argc,char *argv[])
{
test07();
return 0;
}
运行结果:
1 2 3 4
5 6 7 8
9 10 11 12
第0列的平均值 = 5.000000
第1列的平均值 = 6.000000
第2列的平均值 = 7.000000
第3列的平均值 = 8.000000
Press any key to continue
|