实验五 二维数值数组
- 格式:pdf
- 大小:130.63 KB
- 文档页数:3
实验五 二维数值数组
一、实验目的
(1)掌握二维数值数组的定义、引用和初始化;
(2)理解二维数值数组元素的存储形式;
(3)熟悉二维数值数组的典型应用:矩阵转置、求最值及位置、特殊
矩阵的运算等。
二、实验准备
1.C语言实现数组的方法
①数组的定义:
int b[3][4]; \*二维数组b包含了3行4列个元素*\
②数组的赋初值:定义数组的同时给元素赋值,可以整体赋值
int b[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; \*按行进行赋值*\
int b[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; \*可以省略行下
标,但不能省略列下标*\
int b[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; \*也可以存储空间位序顺
序赋值*\
③数组元素的引用:二维数值数组元素引用需要使用两个下标,如
a[2][3];
③数组元素的遍历:
二维数值数组常用双重循环引用其元素,外循环循环控制变量为
行下标,内循环循环控制变量为列下标。
3.阅读以下程序,并分析其功能,调试运行程序后再分析其运行结
果。
①程序文件名为ex5-1.c 。(掌握二维数组的输入输出,和转置)
# include
main()
{
int a[2][3]={{1,2,3},{4,5,6}}; //二维数组赋初值
int b[3][2],i,j;
for(i=0;i<2;i++) //转置算法
for(j=0;j<3;j++)
b[j][i]=a[i][j];
printf("数组a:\n");
for(i=0;i<2;i++) // 输出二维矩阵
{ for(j=0;j<3;j++)
printf("%5d",a[i][j]); //内循环一遍输出一行3个元素
printf("\n"); //输出一行后换行
}
printf("\n输出转置后的数组b:\n");
for(i=0;i<3;i++)
{ for(j=0;j<2;j++)
printf("%5d",b[i][j]); //内循环一遍输出一行2个元素
printf("\n"); //输出一行后换行
}
}
三、实验内容( 按要求设计以下程序,并调试分析运行结果
,此部分完成在实验报告上)
(1) 设计程序sy5-1.c,从键盘上输入一个3行3列矩阵各个元素的值,
输出其主对角线元素和反向对角线元素之和。
(2) 设计程序sy5-2.c,找出一个3×4的矩阵中的最小值及其位置。
(3) 设计程序sy5-3.c,定义一个3×3的二维数组,通过随机函数自动
赋值。然后输入一个整数n,使数组左下三角(含对角线元素)元素中
的值乘以n 。例如:若n的值为3,a 数组中的值为
| 1 9 7 |则程序运行后a数组中的值应为 | 3 9 7 |
| 2 3 8 | | 6 9 8 |
| 4 5 6 | | 12 15 18 |
(4) 设计程序sy5-4.c,输入一个整数m(2≤m≤9〕,在m行m列的二维
数组中存放如下所示规律的数据。例如,若输入2,则输出:,若输入
4,则输出:
(5) 设计程序sy5-5.c,将3×3矩阵中元素的值按列右移1个位置,右边
被移出矩阵的元素绕回左边。例如,有下列矩阵
1 2 3
4 5 6
7 8 9
计算结果为
3 1 2
6 4 5
9 7 8
四、实验要求:
“实验内容”中的任务要求在实验课上完成,若未完成请在下次上课前
利用课外时间完成。
五、实验报告填写要求:
1、第一页用《攀枝花学院实验报告》纸,其后用《实验报告附页》
纸。
2、第一页填写项目:
实验课程:计算机基础2-C语言 实验项目:[本次实验名称] 实验日
期:[本次实验日期]
系: 班级: 姓名: 学号:
指导教师:
3、实验报告正文要求:
实验目的:(抄写本次实验目的)
实验仪器设备:PC机一套
实验步骤(内容):
(要求完成以上第三部分内容,编程题要求抄写题目并写出程序源代
码,并记录程序的运行结果)
实验结论:(分析通过本次实验掌握的知识或是还有什么遗留问题)
4、实验报告写好后将完成的实验报告纸订(或粘)在一起,于下一次
上课前交给指导老师。