实验七__多维数组的使用
C语言程序设计实验指导书参考答案_第二版

C 语言程序设计 上机实验指导与习题(第二版) 参考答案(仅供教师内部参考)来自华南农业大学目 录
上机实验 ................................................................................................................................................................... 1 实验 1 C 语言程序初步 .................................................................................................................................... 1 一、实验目的............................................................................................................................................ 1 二、实验内容.................................................................................................................................
数组及应用实验报告

一、实验目的1. 理解数组的定义和概念,掌握数组的声明、初始化和访问方法。
2. 掌握一维数组和二维数组的操作,包括元素的赋值、排序、查找等。
3. 熟悉数组在实际编程中的应用,如排序算法、查找算法等。
4. 培养解决实际问题的能力,提高编程水平。
二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 语言:C/C++三、实验内容1. 一维数组的声明、初始化和访问2. 一维数组的排序(冒泡排序、选择排序、插入排序)3. 一维数组的查找(线性查找、二分查找)4. 二维数组的声明、初始化和访问5. 二维数组的操作(求和、求平均值、查找最大值和最小值)6. 数组在实际编程中的应用(如冒泡排序算法实现、字符串匹配)四、实验步骤1. 一维数组的声明、初始化和访问(1)声明一个整型一维数组,如int arr[10];(2)初始化数组,如arr[0] = 1, arr[1] = 2, ...;(3)访问数组元素,如printf("%d", arr[i]);2. 一维数组的排序(1)冒泡排序:比较相邻元素,如果逆序则交换,重复执行,直到排序完成。
(2)选择排序:每次选择未排序部分的最小(或最大)元素,放到已排序部分的末尾。
(3)插入排序:将未排序的元素插入到已排序部分的合适位置。
3. 一维数组的查找(1)线性查找:逐个比较数组元素,找到目标元素则返回其位置。
(2)二分查找:在有序数组中,先确定中间元素,再与目标元素比较,根据比较结果缩小查找范围。
4. 二维数组的声明、初始化和访问(1)声明一个整型二维数组,如int arr[3][4];(2)初始化数组,如arr[0][0] = 1, arr[0][1] = 2, ...;(3)访问数组元素,如printf("%d", arr[i][j]);5. 二维数组的操作(1)求和:遍历二维数组,将所有元素相加。
c语言实验报告《数组》

c语言实验报告《数组》C语言实验报告:数组引言:C语言是一门广泛应用于计算机编程领域的高级编程语言,其强大的功能和灵活性使得它成为了许多程序员的首选。
在C语言中,数组是一种非常重要的数据结构,它能够存储多个相同类型的元素,并通过索引来访问和操作这些元素。
本篇实验报告将重点介绍C语言中的数组,并通过实例来展示其用法和特性。
一、数组的定义和声明在C语言中,数组的定义和声明非常简单。
我们可以通过以下方式来定义一个数组:```数据类型数组名[数组大小];```其中,数据类型表示数组中元素的类型,数组名是我们给数组起的名称,而数组大小则表示数组中元素的个数。
例如,我们可以定义一个包含5个整数的数组:```int numbers[5];```这样,我们就成功地声明了一个名为numbers的整数数组,它包含了5个元素。
二、数组的初始化在声明数组的同时,我们还可以为数组的元素赋初值。
这个过程称为数组的初始化。
C语言提供了多种初始化数组的方式,例如:```int numbers[5] = {1, 2, 3, 4, 5};```上述代码将数组numbers的前5个元素分别初始化为1、2、3、4和5。
我们也可以只给部分元素赋初值,未赋初值的元素将自动被初始化为0:```int numbers[5] = {1, 2, 3};```这样,数组numbers的前3个元素将分别被初始化为1、2和3,而后两个元素将被初始化为0。
三、数组的访问和操作数组的访问和操作是我们使用数组的重要环节。
在C语言中,我们可以通过索引来访问和操作数组中的元素。
数组的索引从0开始,即第一个元素的索引为0,第二个元素的索引为1,以此类推。
例如,我们可以通过以下方式来访问数组numbers的第一个元素:```int firstNumber = numbers[0];```上述代码将数组numbers的第一个元素赋值给变量firstNumber。
同样,我们也可以通过索引来修改数组中的元素:```numbers[0] = 10;```上述代码将数组numbers的第一个元素修改为10。
多维数组赋值

多维数组赋值多维数组是一种在编程中常用的数据结构,它可以用来存储具有多个维度的数据。
在赋值多维数组时,我们需要按照数组的维度来逐个赋值。
以下是多维数组赋值的相关参考内容。
1. 二维数组赋值示例:```javaint[][] matrix = new int[][]{{1, 2, 3},{4, 5, 6},{7, 8, 9}};```上述代码中,我们创建了一个3x3的二维数组,并通过多个大括号来为每个元素赋值。
通过这种方式,我们可以直观地将二维数组的元素逐个赋值,并且可以方便地进行修改和访问。
2. 三维数组赋值示例:```javaint[][][] cube = new int[][][]{{{1, 2, 3},{4, 5, 6},},{{7, 8, 9},{10, 11, 12},}};```上述代码中,我们创建了一个2x2x3的三维数组,并通过多个大括号来为每个元素赋值。
在三维数组赋值时,我们需要嵌套多层大括号,以便为每个元素赋予正确的值。
3. 多维数组的动态赋值:```javaint[][] matrix = new int[3][3];for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {matrix[i][j] = i + j;}}```上述代码中,我们先创建一个3x3的二维数组,然后通过双重循环为每个元素赋值。
通过这种方式,我们可以动态地根据需求来为多维数组赋值,并且可以灵活地改变赋值的规则。
4. 使用循环赋初值:```javaint[][] matrix = new int[3][3];int value = 1;for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {matrix[i][j] = value;value++;}}```上述代码中,我们通过循环为二维数组的每个元素赋初始值。
数组实验实验报告

数组实验实验报告本文介绍的是一个数组实验的实验报告,介绍了实验的目的,实验内容、方法、结果以及分析,希望能为读者提供一些参考和帮助。
一、实验目的:1、了解数组的定义和基本概念;2、掌握数组元素的访问和操作;3、了解并掌握多维数组的定义和基本操作;4、掌握对数组进行排序的方法;5、学会用数组的方式实现一些常见的算法。
二、实验内容实验内容包括以下几个部分:1、数组定义和使用2、数组元素的访问和操作3、多维数组的定义和基本操作4、数组排序5、使用数组实现一些算法三、实验方法1、实验仪器和设备计算机、开发工具:Visual Studio2、实验步骤1)实现数组的定义和使用数组是一组有序的数据集合,可以是同类型,也可以是不同类型的数据。
可以通过定义数组可以简化程序的编写,提高程序的效率。
定义数组:通过关键字type或者var或者const,再加上数组名以及元素的类型等,来定义数组。
如下所示:type arrayName=arrayType[startIndex..endIndex] of dataType;(类型、数组名、数组元素的下标的范围、数据类型)vararrayNum:array[1..5] of integer;//定义5个元素的整数数组,并赋初值2)数组元素的访问和操作数组元素的访问:通过数组的下标来访问数组元素,下标从0开始,表示第一个元素,一次立1.如下所示:arrayName[index]:elementType; //数组名[下标]arrayNum[1]:=10;//将数组的第二个元素赋值成103)多维数组的定义和基本操作多维数组就是数组中包含了数组,具体的定义方式如下:typeMatrix=array[1..3,1..3] of integer;//定义一个3x3的整数矩阵varA,B: Matrix;A[1,1];//访问矩阵中的元素A[1,2]:=5;//给矩阵中的某个元素赋值4)数组排序排序是程序设计中最基本的算法之一,有很多种不同的排序算法。
多维数组使用实验报告

一、实验目的1. 理解多维数组的概念和特点。
2. 掌握多维数组的创建、访问和操作方法。
3. 学会使用多维数组解决实际问题。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容1. 多维数组的创建与初始化2. 多维数组的访问与索引3. 多维数组的操作4. 多维数组在实际问题中的应用四、实验步骤1. 多维数组的创建与初始化```pythonimport numpy as np# 创建一个2维数组array_2d = np.array([[1, 2, 3], [4, 5, 6]])# 创建一个3维数组array_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])# 创建一个4维数组array_4d = np.array([[[[1, 2], [3, 4]], [[5, 6], [7, 8]]], [[[9, 10], [11, 12]], [[13, 14], [15, 16]]]])```2. 多维数组的访问与索引```python# 访问2维数组中的元素print(array_2d[0, 1]) # 输出:2# 访问3维数组中的元素print(array_3d[0, 1, 1]) # 输出:4# 访问4维数组中的元素print(array_4d[0, 0, 0, 1]) # 输出:2```3. 多维数组的操作```python# 获取数组的形状print(array_2d.shape) # 输出:(2, 3)# 获取数组的类型print(array_2d.dtype) # 输出:int64# 索引切片print(array_2d[0:2, 1:3]) # 输出:[[2 3] [5 6]] # 数组转置print(array_2d.T) # 输出:[[1 4] [2 5] [3 6]] # 数组求和print(np.sum(array_2d)) # 输出:21# 数组求平均值print(np.mean(array_2d)) # 输出:5.5```4. 多维数组在实际问题中的应用```python# 计算二维矩阵的乘法matrix_a = np.array([[1, 2], [3, 4]])matrix_b = np.array([[5, 6], [7, 8]])result = np.dot(matrix_a, matrix_b)print(result) # 输出:[[19 22] [43 50]]# 计算矩阵的逆matrix_c = np.array([[1, 2], [3, 4]])result = np.linalg.inv(matrix_c)print(result) # 输出:[[ 2. -1.]# [-3. 1.]]```五、实验总结通过本次实验,我们对多维数组有了更深入的了解。
数组程序设计实验报告
数组程序设计实验报告数组程序设计实验报告引言在计算机科学领域,数组是一种重要的数据结构,用于存储和操作大量相同类型的数据。
数组的使用广泛,无论是在算法设计还是软件开发中,都扮演着重要的角色。
本实验旨在通过编写数组程序,探索数组的特性和应用。
一、数组的定义与初始化数组是一种由相同类型的元素组成的集合,每个元素都可以通过索引访问。
在程序中,我们可以通过声明数组变量来定义一个数组。
例如,int numbers[5]就定义了一个包含5个整数的数组。
数组的初始化可以在声明时进行,也可以在后续的代码中进行。
二、数组的基本操作1. 访问数组元素数组元素可以通过索引来访问,索引从0开始。
例如,numbers[0]表示数组numbers的第一个元素。
通过循环遍历数组,我们可以逐个访问数组中的元素。
2. 修改数组元素数组元素的值可以通过索引进行修改。
例如,numbers[0] = 10将把数组numbers的第一个元素的值修改为10。
3. 数组的长度数组的长度是指数组中元素的个数。
在C语言中,可以通过sizeof运算符来获取数组的长度。
例如,sizeof(numbers) / sizeof(numbers[0])将返回数组numbers的长度。
三、数组的应用1. 数组的排序数组排序是数组程序设计中常见的任务之一。
常见的排序算法包括冒泡排序、选择排序和插入排序。
通过对数组元素进行比较和交换,可以将数组按照升序或降序排列。
2. 数组的搜索数组搜索是另一个常见的任务,它涉及在数组中查找特定的元素。
线性搜索是一种简单直观的搜索方法,它逐个比较数组元素,直到找到目标元素或搜索完整个数组。
二分搜索是一种更高效的搜索方法,它要求数组事先有序。
3. 多维数组除了一维数组,我们还可以使用多维数组来存储和处理更复杂的数据。
二维数组是最常见的多维数组形式,它可以看作是一个表格或矩阵。
通过使用行和列的索引,我们可以访问和修改二维数组中的元素。
python函数实现多维数组遍历_Numpy多维数据数组的实现
python函数实现多维数组遍历_Numpy多维数据数组的实现在Python中,可以使用函数来实现多维数组的遍历。
这种方式非常灵活,可以适用于任意维度的数组。
首先,让我们定义一个递归函数来遍历多维数组。
函数的参数包括数组本身和数组的维度。
```pythondef traverse_array(arr, dimension):#判断数组是否为一个标量值(0维数组)if dimension == 0:#对标量值进行处理,例如打印或其他操作print(arr)else:#对当前维度进行遍历for i in range(len(arr)):#递归调用函数来处理下一个维度的子数组traverse_array(arr[i], dimension-1)```现在,我们通过一个例子来说明如何使用这个函数来遍历一个多维数组。
```python#定义一个3维数组arr = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]#调用函数来遍历数组traverse_array(arr, 3)```运行上面的代码,我们将得到如下的输出:```101112```这个例子中,我们定义了一个3维数组,然后使用函数`traverse_array(`来遍历这个数组。
输出结果按照数组元素的顺序依次打印出来。
另外,如果我们要使用更高级的功能来操作多维数组,可以使用NumPy库。
NumPy是一个Python科学计算库,提供了灵活的多维数组对象ndarray。
首先,我们需要安装NumPy库。
可以使用以下命令来安装:```pip install numpy```安装完成后,我们就可以使用NumPy库来操作多维数组了。
下面是一个使用NumPy库的例子:```pythonimport numpy as np#定义一个3维数组arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])#使用索引来访问数组元素print(arr[0, 1, 2]) # 输出:6#使用切片来获取子数组print(arr[:, 1, :]) # 输出:[[4 5 6] [10 11 12]]#使用循环遍历数组for element in np.nditer(arr):print(element)```在上面的例子中,我们首先导入NumPy库并定义了一个3维数组。
C语言中多维数组的内存分配和释放
写代码的时候会碰到多维数组的内存分配和释放问题,在分配和释放过程中很容易出现错误。
下面贴上一些示例代码,以供参考。
如果要给二维数组(m*n)分配空间,代码可以写成下面:char **a, i;// 先分配m个指针单元,注意是指针单元// 所以每个单元的大小是sizeof(char *)a = (char **)malloc(m * sizeof(char *));// 再分配n个字符单元,// 上面的m个指针单元指向这n个字符单元首地址for(i = 0; i < m; i++)a[i] = (char *)malloc(n * sizeof(char));(注意红色部分)释放应该是:int i;for(i=0;i<m;i++)free((void *)a[i]);free((void *)a);如果为三维数组(m*n*p)分配空间呢,应该是:char ***a, i, j;a = (char ***)malloc(m * sizeof(char **));for(i = 0; i < m; ++i)a[i] = (char **)malloc(n * sizeof(char *));for(i = 0; i < m; ++i)for(j = 0; j < n; ++j)a[i][j] = (char *)malloc(p * sizeof(char));释放代码为逆过程,具体代码为:int i,j,;for(i = 0; i < m; ++i)for(j = 0; j < n; ++j)free((void *)a[i][j]);for(i = 0; i < m; ++i)free((void *)a[i]);free((void *)a);三维以上的多维数组的分配和释放,原理与上面的一样。
(转)C中如何为第二维长度固定的二维数组分配内存在所写的代码中,有时需要为一个二维数组分配内存,该二维数组的第一维长度不定,而第二维是固定(类似arr[n][3]的数组)。
数组(C语言实验报告)
数组(C语言实验报告)实验目的1. 熟悉C语言数组的定义和使用;2. 掌握C语言数组的基本操作并能够自行编写数组程序。
实验内容本实验主要介绍C语言中的数组,包括数组的定义、数组的初始化、数组的访问、多维数组、指向数组的指针等内容。
数组是一种存储相同类型数据的集合,它有一个固定的大小,有序的排列在内存中,可以快速地访问其中的任何元素。
C语言中定义数组的格式如下:数据类型数组名[数组长度];其中,数据类型指数组中元素的数据类型,数组名是数组的标识符,数组长度指数组能够容纳的元素个数。
例如:int a[10]; // 定义一个长度为10的int类型数组achar b[5]; // 定义一个长度为5的char类型数组b2. 数组的初始化数组初始化是指在定义数组时给数组赋初始值,可以一次性给所有元素赋值,也可以逐个给元素赋值。
数组的初始化格式如下:其中,元素1,元素2,…表示数组中的初始值。
例如:如果在定义数组时没有为数组赋初值,系统会自动初始化数组的元素为0。
3. 数组的访问数组的访问是指通过数组下标访问数组中的元素。
数组下标从0开始,到数组长度减1结束,用中括号([])括起来,写在数组名称后面。
例如:int a[3] = {1,2,3};printf("%d,%d,%d",a[0],a[1],a[2]); //输出数组的所有元素4. 多维数组多维数组是指数组中的元素也是一个数组,可以看成把一个一维数组放在另一个一维数组的某个元素中。
多维数组的定义和访问与一维数组类似,但需要指定多维数组的长度。
例如:int a[2][3] = {{1,2,3},{4,5,6}}; //定义一个2行3列的二维数组aprintf("%d,%d,%d\n",a[0][0],a[0][1],a[0][2]); //访问数组a的第一行元素printf("%d,%d,%d",a[1][0],a[1][1],a[1][2]); //访问数组a的第二行元素5. 指向数组的指针指针是一种特殊的变量,它存储的是一个内存地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七__多维数组的使用实验目的:(1) 掌握二维数组的定义方法、初始化赋值和元素引用;(2) 二维数组元素的输入/输出、求最值、均值问题的编程方法; 实验环境:Turbo C for Windows 集成实验与学习环境 6.11 实验要求任务:1.结合实验所给内容,自行设计实验步骤,认真完成实验。
2.总结实验过程,编写提交实验报告:方案、编程、调试、结果、分析、结论。
实验内容:二维数组是一个m 行n 列矩阵。
即: 1、二维数组的定义与初始化赋值: (1)定义格式: <类型> <数组名>[<m>][<n>]; 其中:m 、n 为常量表达式,m=数组行数,n=数组列数。
例如:int a[3][4];表示定义了一个3行4列共12个元素的二维整型数组a ,数组中各元素分别为: 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]可以把二维数组看作为一种特殊的一维数组,即它的每一个元素又是一个一维数组。
(2)二维数组的初始化赋值 二维数组初始化赋值的方法有: ① 所有元素赋初值给数组的所有元素赋初值的方法有两种:方法一:{{0行初值},{1行初值},…,{m 行初值}}即每行一个花括号,花括号间用逗号分隔,全部初值再用一个花括号。
例如:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 方法二:{0行初值,1行初值,…,m 行初值}所有初值放在一个花括号中,按数组排列的顺序给各元素赋初值。
例如: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[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12}; ② 部分元素赋初值{{0行部分初值},{1行部分初值},…,{m 行部分初值}} 例如: (1)a21 a22 … a2n A= … … … … …amnint a[3][4]={{1,2},{5},{9,10,11}};表示二维数组a 的元素a[0][0]、a[0][1]、a[1][0]、a[2][0]、a[2][1]、a[2][2]赋了初值。
2、二维数组存储方式按行存放二维数组各数组元素。
即先存第一行元素,再存第二行元素,依次把各行元素存入一串连续的存储单元中。
例如上节中所定义的a 数组存储在内存中时各数组元素的排列顺序如图所示。
3、二维数组元素的引用 <数组名>[<下标表达式1>][<下标表达式2>]下标表达式1=元素行号,下标表达式2=元素列号(行号与列号必须为整型)。
【例1】 通过键盘给一个3行4列的二维数组输入整型数值,并按表格形式输出此数组的所有元素。
程序如下: main() {int a[3][4], i, j;printf("Input twelve integers:"); for ( i=0; i<3; i++ ) for ( j=0; j<4; j++ ) scanf(“%d ”, &a[i][j]); for ( i=0; i<3; i++ ) {for ( j=0; j<4; j++ )printf(“%5d ”, a[i][j]); printf(“\n ”); } }程序执行后提示:Input twelve integers: 1 2 3 4 5 6 7 8 9 10 11121 2 3 4 5 6 7 8 9 10 11 12思考题:输入两个二维数组A 、B ,数据处理为C=A+B ,最后输出数组C 。
如何编程? 【例1】 将一个二维数组的行和列元素互换,形成另一个二维数组,即数组的转置运算。
例如:a 数组b 数组12 3 4 1 5 9 5 6 7 8 2 6 10 9 10 11 12 3 7 114 8 12图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]分析:将a数组转换成b数组,只要将其每个数组元素的两个下标交换即可,即b[j][i]=a[i][j]。
程序如下:main(){int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};int b[4][3];int i, j;printf("Array a:\n");for ( i=0; i<3; i++ ) /*输出a数组*/{for (j=0;j<4;j++)printf(“%5d”,a[i][j]);printf(“\n”);}for ( i=0; i<3; i++ ) /*将a数组转置成b数组*/ for ( j=0; j<4; j++ )b[j][i]=a[i][j];printf("Array b:\n");for ( i=0; i<4; i++ ) /*输出b数组*/{for ( j=0; j<3; j++ )printf(“%5d”, b[i][j]);printf(“\n”);}}程序运行后,输出:Array a:1 2 3 45 6 7 89 10 11 12Array b:1 5 92 6 103 7 114 8 12【例3】某小组有5个学生,考了3门课程,他们的学号及成绩如表4.1所示,试编程求每个学生的平均成绩,并按表格形式输出每个学生的学号、3门课程成绩和平均成绩。
分析:可定义一个具有5行3列的二维数组来存放5个学生的3门课的成绩,数组的每一行的3个元素存放一个学生3门课的成绩,5个学生共5行。
还可定义两个具有5个元素的一维数组分别存放5个学生的学号和平均成绩。
统计某个学生的平均成绩时,只要将二维数组某一行的3个元素加起来除以3,然后将其存入平均成绩数组的相应元素即可。
像这一类数据处理问题,用程序让计算机来处理的一般过程为:(1)输入数据;(2)处理数据;(3)输出数据。
程序如下:#define M 5#define N 3main(){int s[M][N], num[M]; /*二维数组s存放成绩,数组num存放学号*/ float sum, ave[M]; /*数组ave存放平均分*/int i, j;printf("Input data:\n"); /*输入数据*/for ( i=0; i<M; i++ ) /*输入5个学生的学号与3门课成绩*/ {scanf(“%d”, &num[i]);for ( j=0; j<N; j++ )scanf(“%d”, &s[i][j]);}for ( i=0; i<M; i++ ) /*处理数据*/{sum=0.0;for ( j=0; j<N; j++ ) /*计算每个学生的总成绩*/ sum = sum + s[i][j];ave[i] = sum / N; /*计算每个学生的平均成绩*/ }printf(“ Num. Math. Chin. Engl. Ave. \n”); /*输出数据*/ printf("------------------------------\n");for ( i=0; i<M; i++ ){printf(“%5d”, num[i]); /*输出每个学生的学号*/ for ( j=0; j<N; j++ ) /*输出每个学生的3门课程的成绩*/ printf(“%6d”, s[i][j]);printf(“%6d\n”, ave[i]); /*输出每个学生的平均成绩*/ }printf("------------------------------\n");}程序运行后,提示:Input data:1001 90 80 851002 70 75 801003 65 70 751004 85 50 601005 80 90 70输出:Num. Math. Chin. Engl. Ave.-------------------------------------------1001 90 80 85 851002 70 75 80 751003 65 70 75 701004 85 50 60 651005 80 90 70 80-----------------------------------------思考题:1、如何将学号、成绩、总分所有数据存放在一个二维数组中,如何求每位学生的总分,如何计算各门课程的平均分,如何求每门课程的最高分与最低分。
2、在上例中求每个学生的平均成绩及每门课的最高分与最低分,对学生成绩表按平均成绩排序后输出。
实做:1、试着运用二维数组的知识做出思考题部分。