6.4二维数组和多维数组二维数组用于存放矩阵形式的数据,如二维表格等数据。定义二维数组的格式如下:<类型><数组名>[<常量表达式1>[<常量表达式2>];例如:/*3×4的矩阵,共12个元素*o int a[3][4];float fL5][10];O
6.4 二维数组和多维数组 二维数组用于存放矩阵形式的数据,如二维表格等数 据。 定义二维数组的格式如下: <类型> <数组名> [<常量表达式1>][<常量表达式2>]; 例如: int a[3][4]; /* 3×4的矩阵,共12个元素 */ float f[5][10];
6.4二维数组和多维数组·int a[3][4]a[o][o] a[o][i] a[o][2] a[o][3]a[0] [0]a[1][o]a[1][1] a[1][2] a[1][3]a[0] [1]第1行a[0] [2]a[2][o] a[2][1] a[2][2] a[2][3]a[0] [3]a[1] [0]a[1] [1]第2行a[1] [2]a[1] [3]a[2] [0]a[2] [1]第3行a[2] [2]a[2] [3]
6.4 二维数组和多维数组 int a[3][4] a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3]
二维数组的初始化完全初始化O int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12]:省略行的完全初始化 int a[[4]={1,2,3,4,5,6,7,8,9,10,11,12];分行完全初始化,可读性较好0 int a[3][4]={{[1,2,3,4],[5,6,7,8],[9,10,11,12]];部分初始化int a[3][4]={1,2,3,4}:O
二维数组的初始化 完全初始化 int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 省略行的完全初始化 int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 分行完全初始化,可读性较好 int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 部分初始化 int a[3][4]={1,2,3,4};
【例6-2】演示二维数组的定义及元素引用#include <stdio.h>mainO int i,j,k=0; int a[3][4];for(i=0;i<3;i++)/*变量控制数组a的行下标*{for(j=o;j<4;j++/*变量j控制数组a列下标*1a[i][j]=k;printf("a[%d][%d]=%d t",i,j,a[i]LiD)k++;1printf("\n");es"D:ICle6_2/Debuglc6_2.ere口XS人a[0][0]-a[0][i]-]a[0][2]-2a[0][3]-3一a[1][0]-4a[1][1]=5a[1][2]=6a[1][3]=7a[2][0]=8a[2][1]=9a[21[2]=10a[2][3]=11
【例6-2】演示二维数组的定义及元素引用 #include <stdio.h> main() { int i,j,k=0; int a[3][4]; for(i=0;i<3;i++) /*变量i控制数组a的行下标*/ { for(j=0;j<4;j++) /*变量j控制数组a列下标*/ { a[i][j]=k; printf("a[%d][%d]=%d\t",i,j,a[i][j]); k++; } printf("\n"); } }
6. 5案例:输入学生成绩,,计算每门课程的平均分LOXcr"n:IClc6_3/Debugle6_3.ereNo:1台【例6-3】输入3位学生的计算机、数学成C Programning:90English:85No:2绩,计算每门课程的平均分。C Programning:82English:88No:3#include <stdio.h>C Programming:68English:73mainOCProgramming:80.86English:82.00{float score[3][2],average[3],temp;for(i=0;i<2;i++)char info[2][1o]={"Computer","English"}; temp=o;int ij;for(j=0;j<3;j++)for(i=0;i<3;i++)temp=temp+score[jl[i]; printf("No:%d|n",i+1);average[i] = temp / 3;for(j =0;j< 2;j++)printf("%s:%.2f|n" printf("%s:",info[iDinfo[i],average[i]];scanf("%f",&score[i]LiD;}717
6.5 案例:输入学生成绩,计算每门课程的平均分 【例6-3】输入3位学生的计算机、数学成 绩,计算每门课程的平均分。 #include <stdio.h> main() { float score[3][2],average[3],temp; char info[2][10]={"Computer","English"}; int i,j; for( i = 0 ; i < 3 ; i++ ) { printf("No:%d\n",i+1); for( j = 0 ; j < 2 ; j++ ) { printf("%s:",info[j]); scanf("%f",&score[i][j]);} } for(i=0;i<2;i++) { temp = 0; for(j=0;j<3;j++) temp = temp + score[j][i]; average[i] = temp / 3; printf("%s:%.2f\n", info[i],average[i]); } }