实验七数组应用二(da)
数组的应用实验原理

数组的应用实验原理1. 实验目的本实验旨在掌握数组的概念、特性和应用,并通过实际案例加深对数组的理解。
2. 实验原理数组是一种用来存储相同类型的数据元素的数据结构。
它可以在内存中连续的存储多个元素,并通过索引值来访问和操作这些元素。
在实际应用中,数组常被用来存储一组相同类型的数据,例如整数、浮点数、字符等。
3. 实验步骤1.声明数组:首先需要声明一个数组,并指定数组的类型和名称。
例如,int[] numbers;表示声明一个整数类型的数组变量名为numbers。
2.创建数组:使用new关键字来创建数组。
例如,numbers = newint[5];表示创建了一个包含5个整数的数组。
3.初始化数组:可以在数组创建后对其中的元素进行初始化,也可以在声明数组时直接进行初始化。
例如,int[] numbers = {1, 2, 3, 4, 5};表示创建并初始化一个包含5个整数的数组。
4.访问数组元素:使用索引值来访问数组中的元素。
索引值从0开始,到数组长度减一。
例如,int x = numbers[2];表示将数组numbers中索引为2的元素赋值给变量x。
5.修改数组元素:通过索引值可以修改数组中的元素。
例如,numbers[0] = 10;表示将数组numbers中索引为0的元素修改为10。
6.遍历数组:使用循环结构可以遍历数组中的所有元素。
通过循环动态改变索引值,从而逐个访问数组中的元素。
例如,使用for循环来遍历数组:for (int i = 0; i < numbers.length; i++) {System.out.println(numbers[i]);}4. 实验案例下面通过一个简单的案例来说明数组的应用原理。
4.1 案例描述某班级有10名学生,需要统计每个学生的成绩,并计算平均分。
4.2 案例解决思路1.声明一个整数类型的数组scores用于存储学生成绩。
2.创建长度为10的数组:scores = new int[10];3.使用循环结构输入每个学生的成绩,并将其存储到数组中。
数组的应用的实验原理

数组的应用的实验原理实验背景在计算机科学中,数组是一种数据结构,它是一个由相同类型的元素组成的集合。
数组是数据存储的基本工具之一,在许多编程语言和算法中都得到广泛应用。
数组提供了一种有序存储数据的方式,可以通过索引访问和修改元素,是一种高效的数据结构。
实验目的通过本次实验,我们的目标是深入了解数组的原理和应用,了解如何创建、访问和修改数组中的元素,以及数组在计算机科学中的重要性。
实验步骤1.创建数组:我们首先需要创建一个数组,即在内存中分配一块连续的存储空间来存储元素。
可以通过以下方式来创建一个数组:–声明一个静态数组:int[] array = {1, 2, 3, 4, 5};–声明一个动态数组:int[] array = new int[5];2.访问数组元素:通过数组的索引可以访问数组中的元素。
数组的索引从0开始,最后一个元素的索引为数组长度减1。
可以使用以下语法来访问数组元素:int element = array[index];3.修改数组元素:可以通过索引来修改数组中的元素。
可以使用以下语法来修改数组元素:array[index] = value;4.数组的长度:我们可以使用length属性来获取数组的长度,即数组中元素的个数。
语法为:int length = array.length;5.数组的遍历:遍历数组可以访问数组中的每个元素。
可以使用循环结构(如for循环)来遍历数组并访问每个元素。
例如:for (int i =0; i < array.length; i++) {System.out.println(array[i]);}6.数组的常见问题:在使用数组时,我们需要考虑一些常见的问题,例如数组越界、数组为空等。
避免这些问题的方法包括输入检查、循环控制等。
实验结果与分析通过实验,我们可以得出以下结论:1.数组提供了一种有序存储数据的方式,可以高效地访问和修改数组中的元素。
【优质文档】数组的应用实验报告-范文word版 (14页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==数组的应用实验报告篇一:数组的应用实验报告数组的应用电力实10 郝毅(201X01000707)上机时间:周二上午一实验目的1 掌握数值型一维数组及二维数组的定义,初始化,以及输入输出的方法。
2 掌握用一维数组及二维数组实现的算法。
3 掌握字符型数组的定义,初始化,以及输入输出的方法。
4 掌握用字符型数组解决字符串问题的方法。
5 掌握常用字符串处理函数。
6 掌握用数组作为函数形参的相关语法规则和编程技巧。
7 掌握在VisualC++集成环境中调试与数组相关程序的方法。
二程序分析1Step1:定义数值型一维数组,及变量n,max,min,I,c;Step2:输入n的值,利用for语句,从键盘输入n个数据,存放在数组中。
Step3;利用for语句遍历n个数组元素,利用max存放最大值,利用min存放最小值;Step4:利用变量c将最大值与a[n-1]交换位置,并将min与a[0]交换位置;Step5;;利用for语句输出数组的前n个元素。
2题Step1:定义数值型一维数组,整型变量s;Step2:利用while语句输入一组数并存放在数组中,同时对该组数求和。
Step3:求出数组预案数的平均值,利用for语句遍历数组元素,并利用计数器计数其中大于等于平均值的实数个数。
Step4:输出计数器的值;3题Step1:定义数值型一维数组,及变量i;Step2:利用for语句遍历从1到100,将所有能被7或11整除的整数存放在数组中。
Step3:利用for语句输出数组元素十个数一行。
4题Step1:定义数值型一维数组,数组长度为50;变量s,i,c=51; Step2:利用while语句将一组互不相同且非0的整数存放在数组中, Step3:输入s的值。
Step4:利用for语句遍历数组元素,找出与s相同的元素,并记录其位置c=I,若不存在,则c=51;Step5:判断c的值,若小于51,则输出i的值,否则输出该数不存在;5题Step1,定义两个一维数组a[8],b[8],并初始化a[20]为{1,2,5, 1,1,3,7,0},及变量c,i,j;Step2:输入变量c的值。
C语言实验报告数组

实验七数组1.实验目的(1)熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;(2)熟练掌握字符数组和字符串函数的使用;(3)掌握与数组有关的常用算法如查找、排序等..2.实验指导(1)对任意一个一维型数组;从中找出数组元素的最大值和最小值并输出..要求:①数组有十个元素;②使用scanf函数实现数组元素的输入前给出必要的提示;③输出时;首先输出数组的十个元素;然后输出其最大值和最小值..分析指导:①算法分析:首先定义一个数组;通过循环从键盘输入十个数组元素的值;再通过另一个循环判断数组元素的最大只和最小值;②根据分析情况编写程序:include<stdio.h>mainint a10;i;max;min;printf"please input ten integers:";fori=0;i<=9;i++{scanf"%d";&ai;}max=a0;min=a0;fori=1;i<=9;i++{ifai>maxmax=ai;ifai<minmin=ai;}fori=0;i<=9;i++{printf"a%d=%d\n";i;ai;}printf"The maximum value is %d;and the minimum value is %d\n";max;min;运行程序;输入十个整数;如:21 37 6 17 9 12 89 76 35 59运行结果如下:(2)编写函数cmpStrchar s1;char s2比较两个字符串s1和 s2的大小..如果s1>s2;返回一个正数;s1=s2;返回0;s1<s2;返回一个负数;在主函数中调用该函数完成字符串的比较操作;并输出返回的值..要求:①不允许使用strcmp函数;②用gets函数在主函数中输入两个字符串;③实现触摸屏受托人函数;返回的正数或负数的绝对值应该是进行比较的两个字符传中相应字符的ASCII码的差值..分析指导:①算法分析:两个字符串从第一个字符开始一一对应进行比较;直到不相等的那个字符;从而求得它们的ASCII码的差值..比如;‘A’与‘C’相比;由于‘A’<‘C’;应输出负数;由于‘A’与‘C’的ASCII码的差值为2;因此;应输出“-2”..同理;“And”和“Aid”比较;根据第二个字符比较结果;‘n’比‘I’大5;因此应输出‘5’;②根据分析情况编写程序:include<stdio.h>int cmpstrchar s1;char s2{int i;diff;i=0;whiles1i==s2i&&s1i='\0'i++;ifs1i=='\0'&&s2i=='\0'diff=0;elsediff=s1i-s2i;return diff;}void main{int z;char s1100;s2100;printf"input the first string:";//输入字符串1gets s1;printf"input the second string:";//输入字符串2getss2;z=cmpstrs1;s2;//输出比较结果printf"the difference between two strings is %d\n";z;}查看运行结果如下:重新输入两个字符串meet;mood运行结果如下:(3)再给定的字符串中查找指定的字符..要求:①字符串采用直接初始化的方式处理;②通过scanf函数读入一个任意字符;③在字符串中查找该字符;如果存在该字符;输出该字符在字符串中的一次出现的位置;如果再给定的字符串中不存在该字符;则给出相应的说明信息..include<stdio.h>void main{int i;char ch;char s=" program";printf" 输入一个英文字母: ";scanf"%c";&ch;for i=0;si='\0';i++{if si==chbreak;}if i<7printf"s%d=%c\n";i;ch;elseprintf"No founded\n";}输入一个英文字母O运行程序如下:再次输入一个英文字母w运行程序如下:(4)首先输入一个大于二且小于十的整数n;然后定义一个二维整型数组nn;初始化该数组;讲述组中最大元素所在的行和最小元素所在的行对调..要求:①nn数组元素的值由scanf函数从键盘输入假定最大值最小值不在同一行上;然后输出该数组;②查找最大值最小值所在的行;将数组中最大元素所在的行和最小元素所在的行对调;并输出对调后的数组;③为直观起见;数组按n行n列的方式输出;④修改程序;对最大值与最小值可能出现在一行种的情况进行处理.. include<stdio.h>main{long matrix99;min;max;temp;int i;j;n;nMax=0;nMin=0;printf"\nplease inpute n of matrix:\n";scanf"%d";&n;printf"\nplease inpute elements of matrix%d%d:\n";n;n; fori=0;i<n;i++forj=0;j<n;j++scanf"%ld";&matrixij;min=max=matrix00;fori=0;i<n;i++forj=0;j<n;j++{ifmatrixij>max{max=matrixij;nMax=i;}else ifmatrixij<min{min=matrixij;nMin=j;}}forj=0;j<n;j++{temp=matrixnMaxj;matrixnMaxj=matrixnMinj;matrixnMinj=temp;}printf"\nResult matrix:\n";fori=0;i<n;i++{forj=0;j<n;j++printf"%5ld";matrixij;printf"\n";}}输入一个数4;输入一个44的数组1 3 6 72 4 5 81 3 5 72 6 9 7运行程序如下:再次输入一个数字3;输入一个33的数组1 2 32 4 537 8运行程序如下:3 实验结论通过本次实验熟练的掌握一维数组、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用;还有就是掌握与数组有关的常用算法。
c语言实验7数组实验报告

实验报告课程名称程序设计实验项目名称数组班级与班级代码14级计算机科学与技术1班实验室名称(或课室) SS1-332专业计算机科学与技术任课教师学号:姓名:实验日期:2014年月日广东商学院教务处制一.实验目的1.熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。
2.熟练掌握字符数组和字符串函数的使用。
3.熟练掌握一位数组以及一位数组元素的存储关系。
4.熟练掌握一位数组和二维数组的使用以及在函数中的传递。
5.通过上机实践掌握与数组有关的算法。
二、实验内容上机题1输入并运行以下程序。
实验内容:用2个数组对第3个数组进行赋值#include<stdio.h>main(){int i,a[5],b[5],c[5];a[0]=2,a[1]=6,a[2]=4,a[3]=8,a[4]=9;b[0]=2,b[1]=7,b[2]=9,b[3]=5,b[4]=3;for(i=0;i<=4;i++){c[i]=a[i]*b[i];printf("c[%d]=%d\n",i,c[i]);}}实验步骤○1int a[5]:整型一维数组说明,a是数组名,也是数组的起始地址,该数组可以存储5个整数。
a[0]~a[4]也可以看成是变量标识字符,[]中的数值称为数组下标,下标从0开始。
○2数组赋值方法和一般变量一样。
例如,a[0]=2表示将2赋给a[0]。
运行结果上机题2 输入并运行以下程序。
实验内容:对不指明数组的数组进行赋值并用循环结构进行求和#include<stdio.h>main(){int sum,i;int a[]={5,8,4,6,4,3,8,2,4,5,6};sum=0;for(i=0;i<=10;i++)sum+=a[i];printf("sum=%d\n",sum);}实验结果实验小结○1对全部元素赋初值时,可以不指定数组长度,C编译系统自动根据初值个数来决定数组长度。
实验七 二维数组实验报告

***软件类实验报告课程名称:C语言程序设计学号:姓名:班级:指导教师:开课学期:学院:***教务处⑶二维数组处理矩阵问题。
四、实验过程及内容:(运行结果请抓图到对应题目的下方)1.输入下面的程序,说明程序的功能并分析运行结果。
2.程序填空题。
加法口诀表。
输入1个正整数n(1≤n≤10),输出一张10以内的加法口诀表。
加数与被加数都不大于n(将加数、被加数、和放入一个二维数组中,再输出该数组),程序运行结果如图7-1所示。
填空完成程序。
实验结果:3. 程序填空题。
下列程序定义了M×N的二维数组,并在主函数中对其赋值。
函数fun()的功能是计算数组周边元素的平均值并作为函数值返回给主函数。
实验结果:4. 编程insert函数,insert函数的功能是:实现在字符串s的指定的下标位置插入另一个字符串t。
例如:字符串s为“I am a boy.”,t为“good ”,调用insert(s,7,t);则s结果为“I am a good boy.”。
主函数框架如下:#include "stdio.h"#include "string.h"void main(){char s[100]="I am a boy.",t[50]="good ";void insert(char s[],int n,char t[]);insert(s,7,t);puts(s);}请完成insert函数的定义。
实验结果:5. 程序改错题。
打印九九乘法表。
6.编写程序实现,求3*3矩阵两条对角线元素之和五、实验小结。
数组应用的实验报告

一、实验目的1. 掌握数组的定义、声明、初始化和引用方法。
2. 熟悉数组在数据存储和操作中的优势。
3. 学习并实现一些常用的数组操作,如排序、查找、插入和删除等。
4. 提高编程能力,培养解决实际问题的能力。
二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 编程语言:C++三、实验内容1. 一维数组的定义、初始化和引用2. 二维数组的定义、初始化和引用3. 数组元素的查找4. 数组元素的排序5. 数组元素的插入和删除四、实验步骤1. 一维数组的定义、初始化和引用(1)定义一个整型一维数组,并初始化前5个元素为1、2、3、4、5。
(2)使用循环遍历数组,输出所有元素。
(3)使用指针遍历数组,输出所有元素。
2. 二维数组的定义、初始化和引用(1)定义一个整型二维数组,并初始化前3行3列的元素。
(2)使用嵌套循环遍历数组,输出所有元素。
(3)使用指针遍历数组,输出所有元素。
3. 数组元素的查找(1)定义一个整型数组,并初始化前10个元素为1、2、3、4、5、6、7、8、9、10。
(2)编写一个函数,用于查找数组中是否存在指定的元素。
(3)在主函数中调用该函数,查找元素5在数组中的位置。
4. 数组元素的排序(1)定义一个整型数组,并初始化前10个元素为1、2、3、4、5、6、7、8、9、10。
(2)编写一个冒泡排序函数,用于对数组进行排序。
(3)在主函数中调用该函数,对数组进行排序,并输出排序后的结果。
5. 数组元素的插入和删除(1)定义一个整型数组,并初始化前10个元素为1、2、3、4、5、6、7、8、9、10。
(2)编写一个插入函数,用于在数组中插入一个新元素。
(3)编写一个删除函数,用于删除数组中的指定元素。
(4)在主函数中调用插入和删除函数,对数组进行操作,并输出操作后的结果。
五、实验结果与分析1. 一维数组的定义、初始化和引用实验结果:成功定义、初始化和引用了一维数组,并输出所有元素。
实验七 数组的应用(1)

【实验内容】
一、编程题 1、定义一维数组 score 存放 5 位同学的英语成绩,成绩从键盘输入, 按从大到小的顺序对数组进行排序, 并输出该数组的原始值和排序后 的值。
PDF 文件使用 "pdfFactory Pro" 试用版本创建
PDF 文件使用 "pdfFactory Pro" 试用版本创建
【2】; bb[i]/=5; } for(i=0;i<3;i++) printf(“\nstudent%d\taverage=%5.1f”,i+1,bb[i]); } 2、请补充 main 函数,该函数的功能是:输出一个 10x10 矩阵,要求非周边元素 赋值 0,周边元素赋值 1。部分源程序如下。 注意:请勿改动主函数 main 和其他函数中的任何内容,仅在 main( )函数的横线 上填入所编写的若干表达式或语句。 试题程序: #include <stdio.h> #define N 10 main( ) { int bb[N][N]; int i,j; for( i=0;i<N;i++) for( j=0;j<N;j++) { if( 【1】 ) bb[i][j]=1; else 【2】 ; } printf(“\n***the result***\n); for(i=0;i<N;i++) { printf(“\n\n”); for(j=0;j<N;j++) printf(“%4d”,bb[i][j]); } }
2、定义一维数组 a,长度为 8,各个元素的值从键盘输入,输出该数 组中的最小值,最大值,平均值以及总和。
数组的运用实验报告

一、实验目的1. 理解数组的基本概念和特点。
2. 掌握数组的创建、初始化和访问方法。
3. 学会使用数组进行数据存储和操作。
4. 提高编程能力和解决问题的能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:C++3. 开发环境:Visual Studio 2019三、实验内容1. 数组的创建与初始化2. 数组元素的访问与修改3. 数组的排序与查找4. 数组的应用实例四、实验步骤1. 数组的创建与初始化(1)创建一个整型数组,包含10个元素。
```cppint arr[10];```(2)使用循环对数组进行初始化,将每个元素的值设置为1。
```cppfor (int i = 0; i < 10; i++) {arr[i] = 1;}```2. 数组元素的访问与修改(1)访问数组中的第一个元素。
```cppint firstElement = arr[0];```(2)修改数组中的第三个元素的值。
```cpparr[2] = 5;```3. 数组的排序与查找(1)使用冒泡排序算法对数组进行排序。
```cppvoid bubbleSort(int arr[], int n) {for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}```(2)使用二分查找算法查找数组中的某个元素。
```cppint binarySearch(int arr[], int l, int r, int x) { while (l <= r) {int m = l + (r - l) / 2;if (arr[m] == x)return m;if (arr[m] < x)l = m + 1;elser = m - 1;}return -1;}```4. 数组的应用实例(1)计算数组中所有元素的和。
2019-数组的应用实验报告word版本 (14页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==数组的应用实验报告篇一:数组的应用实验报告数组的应用电力实10 郝毅(201X01000707)上机时间:周二上午一实验目的1 掌握数值型一维数组及二维数组的定义,初始化,以及输入输出的方法。
2 掌握用一维数组及二维数组实现的算法。
3 掌握字符型数组的定义,初始化,以及输入输出的方法。
4 掌握用字符型数组解决字符串问题的方法。
5 掌握常用字符串处理函数。
6 掌握用数组作为函数形参的相关语法规则和编程技巧。
7 掌握在VisualC++集成环境中调试与数组相关程序的方法。
二程序分析1Step1:定义数值型一维数组,及变量n,max,min,I,c;Step2:输入n的值,利用for语句,从键盘输入n个数据,存放在数组中。
Step3;利用for语句遍历n个数组元素,利用max存放最大值,利用min存放最小值;Step4:利用变量c将最大值与a[n-1]交换位置,并将min与a[0]交换位置;Step5;;利用for语句输出数组的前n个元素。
2题Step1:定义数值型一维数组,整型变量s;Step2:利用while语句输入一组数并存放在数组中,同时对该组数求和。
Step3:求出数组预案数的平均值,利用for语句遍历数组元素,并利用计数器计数其中大于等于平均值的实数个数。
Step4:输出计数器的值;3题Step1:定义数值型一维数组,及变量i;Step2:利用for语句遍历从1到100,将所有能被7或11整除的整数存放在数组中。
Step3:利用for语句输出数组元素十个数一行。
4题Step1:定义数值型一维数组,数组长度为50;变量s,i,c=51; Step2:利用while语句将一组互不相同且非0的整数存放在数组中, Step3:输入s的值。
Step4:利用for语句遍历数组元素,找出与s相同的元素,并记录其位置c=I,若不存在,则c=51;Step5:判断c的值,若小于51,则输出i的值,否则输出该数不存在;5题Step1,定义两个一维数组a[8],b[8],并初始化a[20]为{1,2,5, 1,1,3,7,0},及变量c,i,j;Step2:输入变量c的值。
实验七 数组及其应用(二)

实验七 数组及其应用(二)
一、实验目的
1.掌握数组的基本概念。
2.掌握二维数组的声明、引用。
3.掌握静态数组和动态数组的区别。
4.掌握控件数组。
二、实验内容
1 有矩阵A ,用二维数组求其转置矩阵B 。
要求将两矩阵按照矩阵样式显示。
⎥⎦⎤⎢⎣⎡654321A =,⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡635241B = 【提示】
所谓转置,即:b(i,j)=a(j,i)。
2 有3×4矩阵A ,求其中值最大和值最小的那两个元素的值,以及它们所在的行号和
列号。
其中,⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡735086792741A =。
3 打印出如图9-1a 所示的杨辉三角形,要求先输入行数n 。
进一步要求:如果要显示为图9-1b 所示的样式,该如何改动原来的程序呢?
【提示】
(1)杨辉三角形是n b a )(+展开后各项的系数,具有如下规律:各行的第一个和最后一个数都是1;从第三行起,除上面指出的第一个数和最后一个数之外,其它的数是上一行同列和前一列两个数之和,即:]1,1[],1[],[--+-=j i a j i a j i a ,i 为行,j 为列。
(2)为了便于控制,将内容显示在图片框(PictureBox )中。
(3)要显示为图9-1(b )所示的样式,应该利用TAB 函数对每行显示的起始位定位。
图9-1(a ) 实验10.3程序运行界面
图9-1(b ) 实验10.3程序运行界面。
实验七二维数组程序设计

实验七二维数组程序设计实验七二维数组程序设计一、实验学时 2学时二、实验目的(一)掌握二维数组的定义、赋值及输入输出的方法;(二)掌握与二维数组有关的算法如查找、矩阵转置等;(三)掌握在程序设计中使用数组的方法。
数组是非常重要的数据类型,循环中使用数组能更好地发挥循环的作用,有些问题不使用数组难以实现。
(四)掌握在VC++环境下上机调试二维数组程序的方法,并对结果进行分析。
三、预习要求熟悉二维数组的定义、引用和相关算法(求最大值、最小值)的程序设计,同时要掌握在程序设计中利用双重循环来实现二维数组的输入和输出。
四、实验内容(一)二维数组的初始化,即给二维数组的各个元素赋初值。
下面的几个程序都能为数组元素赋值,请输入程序并运行,比较这些赋值方法有何异同。
1.在定义数组的同时对数组元素分行初始化。
/* c7-1.c *//*二维数组的初始化(分行)*/#include "stdio.h"void main( ){ int i,j,a[2][3]={{1,2,3},{4,5,6}};for(i=0; i<2; i++){ for(j=0; j<3; j++)printf("%d ",a[i][j]);printf("\n");}}2.不分行的初始化。
把{ }中的数据依次赋值给数组的各个元素。
/* c7-2.c *//*二维数组的初始化(不分行)*/#include "stdio.h"void main( ){ int i,j,a[2][3]={1,2,3,4,5,6};for(i=0;i<2;i++){ for(j=0;j<3;j++)printf("%d ",a[i][j]);printf("\n");}}3.为部分数组元素初始化。
如:数组定义语句为:int i,j,a[2][3]={{1,2},{4}};4.可以省略第一维的定义,但不能省略第二维的定义。
数组应用实验报告

数组应用实验报告数组应用实验报告引言:数组是一种常见且重要的数据结构,在计算机科学和编程中广泛应用。
本实验旨在通过实际案例,探索数组在不同领域的应用,并展示其在问题解决中的价值和效果。
一、数组在图像处理中的应用:图像处理是一门涉及数字图像的科学与技术,而数组在图像处理中扮演着重要的角色。
通过将图像像素值存储在数组中,我们可以对图像进行各种操作,如调整亮度、对比度,应用滤镜等。
通过实验,我们使用数组来实现图像的二值化处理,将彩色图像转换为黑白图像。
通过遍历图像的每个像素,将其转换为相应的二值像素,我们成功地实现了图像的二值化。
二、数组在数据分析中的应用:数据分析是一种通过收集、处理和解释数据来提取有用信息的过程。
在数据分析中,数组被广泛用于存储和处理大量数据。
通过实验,我们使用数组来计算一组数据的平均值、方差和标准差。
通过将数据存储在数组中,我们可以轻松地对其进行遍历和计算,从而得到准确的统计结果。
三、数组在游戏开发中的应用:游戏开发是一门创造虚拟世界的艺术和科学。
在游戏中,数组被用于存储和管理游戏中的各种对象,如玩家、敌人、道具等。
通过实验,我们使用数组来实现一个简单的游戏场景。
通过将游戏对象存储在数组中,并使用循环遍历数组,我们能够轻松地管理和更新游戏中的各个对象,实现游戏的正常运行。
四、数组在密码学中的应用:密码学是一门研究通信安全和数据保护的学科。
在密码学中,数组被广泛用于存储和处理加密和解密过程中的数据。
通过实验,我们使用数组来实现一个简单的凯撒密码加密算法。
通过将明文和密钥存储在数组中,并使用数组索引进行字符的替换,我们成功地实现了凯撒密码的加密和解密过程。
结论:通过本次实验,我们深入了解了数组在不同领域的应用。
无论是图像处理、数据分析、游戏开发还是密码学,数组都发挥着重要的作用。
数组作为一种高效、灵活的数据结构,为我们解决各种问题提供了强大的工具。
通过学习和应用数组,我们能够更好地理解和掌握计算机科学和编程的核心概念,为解决实际问题提供切实可行的解决方案。
数组应用实验报告

一、实验目的1. 理解数组的概念和特点。
2. 掌握数组的创建、初始化、赋值、访问和修改等方法。
3. 学会使用数组解决实际问题,如排序、查找等。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发环境:PyCharm三、实验内容1. 数组的创建和初始化2. 数组的访问和修改3. 数组排序4. 数组查找5. 数组应用实例四、实验步骤1. 数组的创建和初始化```python# 创建一个长度为5的整型数组array1 = [0] 5# 创建一个包含10个元素的浮点型数组array2 = [0.0] 10# 创建一个包含5个字符串的数组array3 = [""] 5```2. 数组的访问和修改```python# 访问数组元素print(array1[0]) # 输出:0# 修改数组元素array1[0] = 1print(array1[0]) # 输出:1```3. 数组排序```python# 使用冒泡排序对整型数组进行排序def bubble_sort(array):n = len(array)for i in range(n):for j in range(0, n-i-1):if array[j] > array[j+1]:array[j], array[j+1] = array[j+1], array[j] # 测试冒泡排序array4 = [64, 34, 25, 12, 22, 11, 90]bubble_sort(array4)print(array4) # 输出:[11, 12, 22, 25, 34, 64, 90]```4. 数组查找```python# 使用二分查找法在有序数组中查找特定元素def binary_search(array, target):low = 0high = len(array) - 1while low <= high:mid = (low + high) // 2if array[mid] == target:return midelif array[mid] < target:low = mid + 1else:high = mid - 1return -1# 测试二分查找array5 = [2, 3, 4, 10, 40]target = 10result = binary_search(array5, target) print(result) # 输出:3```5. 数组应用实例```python# 实例:计算数组中所有元素的和def sum_of_elements(array):return sum(array)# 测试计算数组元素和array6 = [1, 2, 3, 4, 5]result = sum_of_elements(array6)print(result) # 输出:15```五、实验结果与分析1. 通过实验,成功创建了不同类型的数组,并掌握了数组的初始化、访问和修改方法。
头歌云课C语言实验七:C语言-数组

头歌云课(C语言)动动你可爱的小手为小编点点关注吧实验七:C语言-数组1选择法排序2二分段交换3计数器4复制字符数组5进制转换6回文判断第1关: 选择法排序本关任务:使用选择法排序编写一个能为数组进行升序排序的程序。
相关知识选择法排序选择法排序,是从n个数中先找出最大或者最小的数放到数组的最前面或最后面,再在剩余的n-1个数中找出最大或者最小的数放到数组的次前面或倒数第2单元,以此类推,直至排序完毕。
下图显示了从n个数中寻找最大值进行升序的排序过程:进行升序排序时,也可以寻找最小值并将其与最前面的数进行交换。
遍历数组通俗的理解,遍历数组就是:把数组中的元素都看一遍。
示例如下:int arr[5] = {1,3,5,7,9};int length = 5;for(int i = 0 ; i<length ; i++){printf(" %d ",arr[i]);}输出:1 3 5 7 9如何交换数组的值交换数组中的两个值,需要借助中间变量。
(优化:请自行思考,如何不使用中间变量交换两个变量的值)示例如下,交换数组的第二个和第三个值:int arr[5] = {1,3,5,7,9};int temp;temp = arr[1];arr[1] = arr[2];arr[2] = temp;数组长度题目要求数组长度不大于n时,可以使用固定数组,示例如下:#define SIZE 100...int arr[SIZE];...但往往会造成空间浪费,为了节省空间我们可以使用malloc创建动态数组,感兴趣的同学可以去了解一下,此处使用固定数组即可。
编程要求根据提示,在右侧编辑器补充void inArray(int arr[],int n)、void selectSort(int arr[],int n)和void outArray(int arr[],int n)的函数定义,这三个函数的输入均是一个长度不大于100的无序数组arr,以及数组的长度n,请在函数selectSort中使用选择法对数组元素进行升序排序,函数inArray用于输入数组的n个元素,函数outArray用于输出数组的n个元素。
C语言程序设计实验七 数组的应用

‘\n’,
‘/’,
‘*’,
‘\n’,
/* (213 lines deleted)*/
0
};
/* The string is a representation of the body of this program from ‘0’to the end */
printf(“%d”,num[i]);
}
3、操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。现在要你设计一个程序,返回一个3 * 5的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存诸的。
4、1983年,在ACM图林奖颁奖大会上,杰出的计算机科学家,UNIX的鼻祖,C语言的创始人之一,图林大奖得主,Ken Thompson上台的第一句话是:“我是一个程序员,在我的1040表上,我自豪地写上了我的职业。作为一个程序员,我的工作就是写程序,今天我将向大家提供一个我曾经写过的最精练的程序。”这个程序如下:
}
(3)#include <stdio.h>
main()
{int a[2+2*4];
}
通过这一实验,可以说明什么问题?
2、运行下面的C程序,根据运行结果,可以说明什么?
#include <stdio.h>
main( )
{int num[5]={1,2,3,4,5};
int i;
for(i=0;i<=5;i++)
main( )
{ int i;
printf(“char \ts[]={\” };
for (i=0;s[i];i++)
数组应用实验报告

数组应用实验报告
《数组应用实验报告》
在计算机科学领域,数组是一种非常重要的数据结构,它可以存储多个相同类型的数据,方便进行管理和操作。
在本次实验中,我们将探讨数组的应用,并通过实验报告来展示其在不同场景下的使用情况。
实验一:数组的创建和初始化
在本实验中,我们首先学习了如何创建和初始化数组。
通过编写简单的代码,我们成功创建了一个包含整数类型的数组,并对其进行了初始化。
我们发现,数组的索引是从0开始的,这意味着我们可以通过索引来访问数组中的元素。
实验二:数组的遍历和操作
接下来,我们学习了如何遍历数组并对其进行操作。
我们使用循环结构来遍历数组中的每个元素,并进行相应的操作。
我们发现,使用数组可以方便地对一组数据进行统一的处理,比如求和、平均值等操作。
实验三:多维数组的应用
在这个实验中,我们学习了多维数组的应用。
通过创建二维数组,我们可以模拟二维空间中的数据结构,比如矩阵、图像等。
我们发现,多维数组可以方便地表示复杂的数据结构,并且可以通过多重循环来对其进行遍历和操作。
实验四:数组的应用案例
最后,我们通过实际案例来展示数组的应用。
我们使用数组来实现一个简单的学生成绩管理系统,通过输入学生的成绩,然后计算平均分、最高分、最低分等统计数据。
我们发现,数组的使用大大简化了数据的管理和操作,提高了程序的效率和可维护性。
综上所述,本次实验通过实验报告展示了数组在不同场景下的应用情况。
通过学习和实践,我们深刻理解了数组的重要性和灵活性,相信在今后的编程工作中,我们将能够更加熟练地运用数组来解决实际问题。
数组及其应用实验报告(3篇)

第1篇一、实验目的1. 熟练掌握数组的定义、初始化、赋值和输入输出方法。
2. 掌握一维数组和二维数组的操作方法。
3. 学会使用数组进行数据存储和排序。
4. 理解数组在实际编程中的应用场景。
二、实验环境硬件:个人电脑软件:Windows操作系统、C语言编译器三、实验内容1. 一维数组的定义、初始化和赋值2. 一维数组的输入输出3. 一维数组的查找与排序4. 二维数组的定义、初始化和赋值5. 二维数组的输入输出6. 二维数组的遍历7. 数组在实际编程中的应用案例四、实验步骤1. 一维数组的定义、初始化和赋值```cinclude <stdio.h>int main() {int array[5]; // 定义一个包含5个整数的数组array[0] = 1; // 赋值操作array[1] = 2;array[2] = 3;array[3] = 4;array[4] = 5;return 0;}```2. 一维数组的输入输出```cinclude <stdio.h>int main() {int array[5];printf("请输入5个整数:\n"); for (int i = 0; i < 5; i++) { scanf("%d", &array[i]);}printf("输入的数组元素为:\n"); for (int i = 0; i < 5; i++) { printf("%d ", array[i]);}return 0;}```3. 一维数组的查找与排序```cinclude <stdio.h>void selectionSort(int array[], int length) {for (int i = 0; i < length - 1; i++) {int minIndex = i;for (int j = i + 1; j < length; j++) {if (array[j] < array[minIndex]) {minIndex = j;}}int temp = array[minIndex];array[minIndex] = array[i];array[i] = temp;}}int main() {int array[5] = {3, 1, 4, 1, 5};int length = sizeof(array) / sizeof(array[0]); selectionSort(array, length);printf("排序后的数组为:\n");for (int i = 0; i < length; i++) {printf("%d ", array[i]);}return 0;}```4. 二维数组的定义、初始化和赋值```cinclude <stdio.h>int main() {int array[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; return 0;}```5. 二维数组的输入输出```cinclude <stdio.h>int main() {int array[3][4];printf("请输入一个3x4的二维数组:\n");for (int i = 0; i < 3; i++) {for (int j = 0; j < 4; j++) {scanf("%d", &array[i][j]);}}printf("输入的二维数组为:\n");for (int i = 0; i < 3; i++) {for (int j = 0; j < 4; j++) {printf("%d ", array[i][j]);}printf("\n");}return 0;}```6. 二维数组的遍历```cinclude <stdio.h>int main() {int array[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; for (int i = 0; i < 3; i++) {for (int j = 0; j < 4; j++) {printf("%d ", array[i][j]);}printf("\n");}return 0;}```7. 数组在实际编程中的应用案例(1)计算矩阵的转置```cinclude <stdio.h>void transposeMatrix(int matrix[][3], int rows, int cols, int transposed[][3]) {for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {transposed[j][i] = matrix[i][j];}}}int main() {int matrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};int rows = 3, cols = 3, transposed[3][3];transposeMatrix(matrix, rows, cols, transposed);printf("矩阵的转置为:\n");for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {printf("%d ", transposed[i][j]);}printf("\n");}return 0;}```(2)计算数组中最大值和最小值```cinclude <stdio.h>void findMaxMin(int array[], int length, int max, int min) { max = array[0];min = array[0];for (int i = 1; i < length; i++) {if (array[i] > max) {max = array[i];}if (array[i] < min) {min = array[i];}}}int main() {int array[] = {1, 3, 5, 7, 9};int length = sizeof(array) / sizeof(array[0]);int max, min;findMaxMin(array, length, &max, &min);printf("数组中的最大值为:%d,最小值为:%d\n", max, min);return 0;}```五、实验结果及分析本次实验通过一系列的实例,使我们对数组及其应用有了更深入的了解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七数组应用(二)
一、实验目的
1.进一步掌握一维数组、二维数组的使用;
2.熟练掌握字符数组的定义与使用;
3.掌握常用的字符处理函数;
4.掌握使用字符数组编写程序。
二、实验学时数
2学时
三、实验步骤
(一)阅读程序
1.#include <stdio.h>
#include <string.h>
main()
{char s1[50]= “I am”;
char s2[ ]=”student!”
printf(“%d,\n”, strlen(s2) );
strcat(s1,s2);
printf(“%s\n”,s1);
2.main()
{ char b[7] = {“67da12”} ;
int i , s=0 ;
for(i =0 ; b [i] >=’0’ && b [i]<=’9’;i+=2) s = 10*s + b [i] –’0’;
printf (“%d\n”, s ) ;
}
3. #include <stdio.h>
main()
{int i= 0 ;
char a [ ] = “cbm” ;
char b [ ] = “cqid” , c [10] ;
while ( a [i] != ‘\0’ && b [i] != ‘\0’ )
{ if (a [i] >= b[i] ) c[i] = a[i] - 32 ;
else c[i] = b[i] - 32 ;
++i ;
}
c [i] = ‘ \ 0’ ;
puts ( c ) ;
(二)完成程序
要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。
1.下面程序的功能是将字符串a中所有的字符 d 删除。
#include <stdio.h>
main()
{ char s [80] ;
int i , j ;
gets(s) ;
for ( i = j = 0 ; s [i] ! = ‘ \ 0’ ; i + +)
if ( s [i] ! = ‘d’ ) _s[j++]=s[i]_______________________;
s [ j ] = ‘ \ 0’ ;
puts( s ) ;
}
2.从键盘输入 :apple <CR> computer<CR>music<CR>game<CR>,想找出最大字符串。
#include <stdio.h>
#include <string.h>
main()
{char str [10] , temp [10]=”\0”;
int i;
for (i=0 ;i<4 ;i++)
{ gets ( str ) ;
if (strcmp(str,temp)>=0) strcpy ( temp , str ) ;
}
puts(temp) ;
}
(三)调试程序
要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。
1.行号 main()
1 { char a[ ] ;
2 int i, len=0 ;
3 a = “C Language Program” ;
4 for (i=0 ; a [ i ] != ‘ \0 ’ ;i+ +)
5 len + + ;
6 printf( “ %s ,%d“ , a,len) ;
7}
#include<stdio.h>
main()
{char a[]="C Language Program" ;
int i, len=0 ;
for(i=0 ; a [ i ] != '\0' ;i++)
len++ ;
printf( " %s ,%d" , a,len) ;
}
2.下面程序的功能是:将字符数组a [6] ={ ‘a’, ‘ b’, ‘ c’, ‘d’, ‘e’,‘ f’ } 变为 a [6] ={‘f’,‘a’, ‘b’ , ‘c’, ‘d’,‘e’}。
行号main( )
1 { int i ;char t;
2 char a[6] = {‘a’,‘ b’,‘ c ’,‘ d’,‘ e ’,‘ f’ } ;
3 t = a [5] ;
4 for (i=
5 ; a[i] ! ='\ 0’; i - - )
5 a [i] = a [i–1] ;
6 a [0] =t;
7 for (i=0 ;i < =5 ;i++)
8 printf (“%c” , a [ i ] );
9 printf ( “\n”) ;
#include<stdio.h>
main( )
{ int i ;char t;
char a[6] = {'a','b','c','d','e','f'} ;
t = a [5] ;
for (i=5 ; a[i]!='\0'; i-- )
a [i] = a [i-1] ;
a [0] =t;
for (i=0 ;i <=5 ;i++)
printf ("%c" , a [i] );
printf ( "\n") ;
}
3. 调试下列程序,使之具有如下功能:任意输入两个字符串(如:"abc 123"和"china"),并存放在a,b两个数组中。
然后把较短的字符串放在a数组,较长的字符串放在b数组。
并输出。
行号main()
1 { char a[10],b[10];
2 int c,d,k;
3 scanf("%s",&a);
4 scanf("%s",&b);
5 printf("a=%s,b=%s\n",a,b);
6 c=strlen(a);
7 d=strlen(b);
8 if(c>d)
9 for(k=0;k<d;k++)
10 { ch=a[k];a[k]=b[k];b[k]=ch;}
11 printf("a=%s\n",a);
12 printf("b=%s\n",b); }
程序中的strlen是库函数,功能是求字符串的长度,它的原型保存在头文件"string.h"中。
调试时注意库函数的调用方法,不同的字符串输入方法,通
#include <string.h>
main()
{ char a[10],b[10],ch;
int c,d,k;
scanf("%s",a);
scanf("%s",b);
printf("a=%s,b=%s\n",a,b);
c=strlen(a);
d=strlen(b);
if(c>d)
for(k=0;k<=c;k++)
{ch=a[k];a[k]=b[k];b[k]=ch;}
printf("a=%s\n",a);
printf("b=%s\n",b);
}
(四)编写程序
1.编写一个程序,从键盘输入一行字符,统计其中有多少个单词,单词之间用空
格分隔,并输出单词的个数。
见课本例题
2.编写一个将一个字符串逆转的程序,如将a [ ] =“apple“改为a [ ] =“elppa“。
#define N 15
#include <stdio.h>
#include <string.h>
main()
{ char a[N],ch;
int c,k;
scanf("%s",a);
c=strlen(a);
for(k=0;k<c/2;k++)
{ch=a[k];a[k]=a[c-k-1];a[c-k-1]=ch;} puts(a);
}。