实验四 数组(详细模板)

合集下载

数组及应用实验报告

数组及应用实验报告

一、实验目的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)求和:遍历二维数组,将所有元素相加。

数组实验报告反思心得

数组实验报告反思心得

一、实验背景本次实验旨在通过学习数组的相关知识,掌握数组的定义、初始化、赋值、引用等方法,以及数组的操作和应用。

通过本次实验,我对数组有了更深入的理解,同时也对编程思维和算法设计有了更全面的提升。

二、实验过程1. 实验一:一维数组的定义与初始化实验过程中,我首先学习了如何定义一维数组,以及如何对数组进行初始化。

通过实验,我掌握了以下知识:(1)一维数组的定义格式:类型符数组名[常量表达式];(2)一维数组的初始化方法:在定义数组时,可以在方括号内指定数组的长度,并为数组元素赋初值。

2. 实验二:二维数组的定义与初始化在实验二,我学习了二维数组的定义与初始化。

通过实验,我掌握了以下知识:(1)二维数组的定义格式:类型符数组名[常量表达式1][常量表达式2];(2)二维数组的初始化方法:可以在定义数组时,指定数组的行数和列数,并为数组元素赋初值。

3. 实验三:数组元素的引用与赋值在实验三,我学习了如何引用数组元素,以及如何为元素赋值。

通过实验,我掌握了以下知识:(1)数组元素的引用方法:数组名[下标];(2)数组元素的赋值方法:使用赋值运算符“=”。

4. 实验四:数组的操作与应用在实验四,我学习了数组的操作与应用,包括冒泡排序、选择排序等。

通过实验,我掌握了以下知识:(1)冒泡排序算法:通过比较相邻元素的大小,将较大的元素交换到后面,直到整个数组有序。

(2)选择排序算法:通过比较相邻元素的大小,选择最小(或最大)的元素放到数组的起始位置,然后继续对剩余的元素进行排序。

三、实验反思1. 数组的定义与初始化在实验过程中,我深刻体会到了数组在编程中的重要性。

数组作为一种数据结构,可以有效地存储和操作一组具有相同数据类型的元素。

通过对数组的定义与初始化,我学会了如何创建一个符合实际需求的数组,并为数组元素赋初值。

2. 数组元素的引用与赋值在实验过程中,我学会了如何引用数组元素,以及如何为元素赋值。

这使我更加熟练地掌握了数组的使用方法,为后续的编程实践打下了基础。

C语言程序设计实验报告 数组

C语言程序设计实验报告 数组

C语言程序设计实验报告数组实验目的:1. 了解数组的概念和使用方法;2. 掌握数组的定义和初始化;3. 掌握数组的遍历和元素访问;4. 掌握数组的排序算法和查找方法。

实验内容:一、数组的定义和初始化:1. 在C语言中,数组是一组有序、相同类型的元素的集合。

数组中的每个元素可以通过一个下标来标识,下标从0开始,最大为元素个数减1。

2. 定义数组的语法:类型名数组名[元素个数];3. 数组的初始化:可以在定义数组的同时进行初始化,也可以在定义后逐个赋值,还可以用花括号{}将初始值逐一列出进行初始化。

示例代码:```// 定义数组并初始化int a[5] = {5, 4, 3, 2, 1};// 定义数组后逐个赋值int b[3];b[0] = 1;b[1] = 2;b[2] = 3;// 使用花括号逐一初始化int c[] = {1, 2, 3, 4, 5};```二、数组的遍历和元素访问:1. 数组的遍历:可以使用for循环来遍历数组中的每个元素。

```int a[5] = {5, 4, 3, 2, 1};printf("%d", a[1]); // 输出4```三、数组的排序算法和查找方法:1. 排序算法:常用的数组排序算法有冒泡排序、插入排序和快速排序等。

```void bubbleSort(int a[], int n) {int i, j, temp;for (i = 0; i < n - 1; i++) {for (j = 0; j < n - i - 1; j++) {if (a[j] > a[j + 1]) {temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}}```2. 查找方法:常用的数组查找方法有线性查找和二分查找等。

实验结果:本次实验主要学习了数组的定义、初始化、遍历、元素访问、排序算法和查找方法。

实验4数组1

实验4数组1

南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□√设计□创新实验日期:实验成绩:一、实验名称实验4 数组二、实验目的1.掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。

2.掌握字符数组与字符串的使用方法。

理解字符数组与其它数组的区别、理解字符串及其特点。

掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。

3.掌握与数组相关的算法,包括排序算法和查找算法等。

三、实验内容有关数组的程序设计四、实验环境PC微机DOS操作系统或Windows 操作系统Turbo C 程序集成环境五、实验步骤1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。

要求:(1)数组为整型数组(10个元素)。

(2)使用scanf函数实现数组元素的输入。

在输入前给出必要的提示。

(3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。

(4)如果现改为20个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。

如果需要数组元素不断改变,应怎样修改程序?2.编程实现:在给定的字符串中查找满足条件的第一个字符。

要求:(1)字符串采用初始化的方式处理。

(2)通过scanf函数读入一个任意字符。

(3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。

如果不存在该字符,则要给出相应的信息。

3.编程实现:首先任意输入一个大于2且小于10的整数n,再输入一个由n决定的二维整型数组(n ⨯n),形成n ⨯n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定义)。

例如:原始数据:n=4 结果数据:1 2 3 4 8 11 14 163 5 9 10 3 5 9 108 11 14 16 1 2 3 415 2 7 6 15 2 7 6要求:(1)本题中所涉及到的循环都采用for语句。

数组实验报告的总结

数组实验报告的总结

一、实验背景随着计算机科学的不断发展,数组作为一种基本的数据结构,在编程中得到了广泛的应用。

为了更好地理解数组的原理和特性,我们进行了数组实验,通过实际操作和理论分析,加深对数组概念的理解。

二、实验目的1. 理解数组的定义、特点和应用场景;2. 掌握数组的创建、访问、修改和删除等基本操作;3. 分析数组在编程中的优势与不足,提高编程能力。

三、实验内容1. 数组的定义与特点数组是一种有序集合,用于存储具有相同数据类型的元素。

数组的元素在内存中连续存放,通过索引访问元素。

数组具有以下特点:(1)元素类型相同:数组中所有元素的数据类型必须相同;(2)连续存储:数组元素在内存中连续存放,便于提高访问速度;(3)索引访问:通过索引快速访问数组元素;(4)动态创建:根据需要动态创建数组,节省内存空间。

2. 数组的创建与初始化在Java中,创建数组主要有以下两种方式:(1)声明数组:int[] array = new int[10]; // 创建一个长度为10的整型数组(2)声明并初始化:int[] array = {1, 2, 3, 4, 5}; // 创建并初始化一个包含5个整数的数组3. 数组的基本操作(1)访问元素:通过索引访问数组元素,如array[0]表示访问第一个元素;(2)修改元素:直接通过索引修改数组元素,如array[1] = 10;;(3)删除元素:在Java中,无法直接删除数组元素,但可以通过重新排序或覆盖元素来实现;(4)查找元素:通过遍历数组,比较元素值,找到目标元素。

4. 数组的应用实例(1)冒泡排序:通过比较相邻元素的大小,实现数组的升序排序;(2)查找算法:如二分查找、线性查找等,通过遍历数组,找到目标元素;(3)动态规划:利用数组存储中间结果,实现复杂问题的求解。

四、实验结果与分析1. 通过实验,我们掌握了数组的定义、特点和应用场景,加深了对数组概念的理解;2. 实验过程中,我们学会了创建、访问、修改和删除数组元素等基本操作,提高了编程能力;3. 在实际应用中,数组在排序、查找、动态规划等方面具有广泛的应用,为编程提供了便利。

实验四 数组

实验四  数组

实验四数组实验课程名:高级语言程序设计(C)专业班级:学号:姓名:实验时间:实验地点:指导教师:一、实验目的和要求(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法;(2)掌握字符数组和字符串函数的使用;(3)掌握与数组有关的算法(特别是排序算法)。

二、实验内容1、任务名称: 调试下列c50101.c程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。

写出调试过程。

源代码:#include <stdio.h>#define N 10void main(){ int i,a[N];double av=0;for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N;i++){ printf("%d",a[i]);if((i+1)%3==0)printf("\n");}for(i=0;i!=N;i++)av+=a[i];av=av/N;printf("\nav=%f\n",av);}运行结果:(需要截图)运行结果分析:求平均数首先应该要求和,题目中求和没有给变量赋初值,这样得到的结果是不可预料的,求和后应除以总数,但不能用语句av=sum/10;因为这样得到的结果是去掉小数点后的结果,不准确,应用语句av=sum/10.0;。

2、任务名称: 下面c50102.c程序是输入5个数据,然后求它们的和并输出结果。

源代码:#include <stdio.h>void main(){int i,a[5],sum=0;scanf("%d",&a[5]);for (i=0;i<=5;i++)sum+=a[5];printf("sum=%d\n",sum);}运行结果:(需要截图)运行结果分析:语句scanf("%d,%d,%d,%d,%d", a );错误,因为数组元素的输入和输出只能逐个元素操作,而不能以数组名作整体操作。

实验四 数组与指针

实验四 数组与指针

所包含的10天再累加到Tday中。
内容四:测试数据
2012 2012 2012 2012 年 2月10日 年 5月10日 年10月10日 年12月21日 存1000元 存200元 取300元 计息 年利率0.36%
计算结果:利息 = 3.38元
计算过程: 5月10日 日积数 1000元*90天
10月10日
注:5 即金额变动日期3.10减去开户日期3.5,也即1000元的存款天数。 10 即计息日期3.20减去金额变动日期3.10,也即3000元的存款天数。
由此,我们看出利息的计算重要的是计算出每次金额变动时日积数 的累计值,而要计算此值首先需要计算每次金额变动时前次金额的存款 天数。
内容四:活期储蓄类设计
主控函数实现:
Int main() { int i,n ; float s ; char na[10]; Cstudent st[N]; //定义对象数组 for(i=0;i<N;i++) { cout<<"输入学号 姓名 成绩:"; cin>>n>>na>>s; st[i].setdata (n ,na ,s); //调用设置函数给对象的数据成员赋值 } cout<<endl<<" 输出数据:"<<endl; cout<<setw(10)<<"学号"<<setw(10)<<"姓名"<<setw(5)<<"成绩"<<endl; for(i=0;i<N;i++) st[i].disp(); cout<<" 平均分="<<setprecision(4)<<Cstudent::Avg()<<endl; return 0; }

数组函数实验报告

数组函数实验报告

数组函数实验报告数组函数实验报告引言:数组是一种常用的数据结构,它可以存储多个相同类型的数据,并且可以通过索引来访问和操作这些数据。

在编程中,数组函数是一种非常实用的工具,可以对数组进行排序、查找、插入、删除等操作。

本文将介绍几个常用的数组函数,并通过实验验证其功能和效果。

一、数组排序函数数组排序函数可以将数组中的元素按照一定的规则进行排序,常见的排序算法有冒泡排序、选择排序、插入排序等。

我们选择了冒泡排序算法进行实验。

实验步骤:1. 定义一个包含多个整数的数组,例如arr = [5, 3, 8, 2, 1]。

2. 使用冒泡排序函数对数组进行排序。

3. 输出排序后的数组。

实验结果:经过冒泡排序函数的处理,原数组arr被排序为[1, 2, 3, 5, 8]。

实验分析:冒泡排序算法的基本思想是通过相邻元素的比较和交换,将较大(或较小)的元素逐渐“冒泡”到数组的一端。

该算法的时间复杂度为O(n^2),在处理大规模数据时效率较低。

二、数组查找函数数组查找函数可以在数组中查找指定的元素,并返回其所在的位置。

我们选择了线性查找算法进行实验。

实验步骤:1. 定义一个包含多个整数的数组,例如arr = [5, 3, 8, 2, 1]。

2. 输入一个要查找的整数x。

3. 使用线性查找函数在数组中查找整数x,并返回其位置。

4. 输出查找结果。

实验结果:假设要查找的整数为x = 3,经过线性查找函数的处理,整数3在数组arr中的位置为2。

实验分析:线性查找算法的基本思想是逐个比较数组中的元素,直到找到目标元素或遍历完整个数组。

该算法的时间复杂度为O(n),适用于小规模数据的查找。

三、数组插入函数数组插入函数可以在数组的指定位置插入一个新元素,并将原数组中的元素后移。

我们选择了插入排序算法进行实验。

实验步骤:1. 定义一个包含多个整数的数组,例如arr = [5, 3, 8, 2, 1]。

2. 输入一个要插入的整数x和插入位置pos。

实验四实验报告-数组

实验四实验报告-数组

实验四函数一、实验目的1.掌握函数的定义、函数的说明和调用。

2.掌握函数的参数及其传递方式,函数值的正确返回。

二、实验内容1.[目的]掌握标准库函数的说明和调用方法。

[题目内容]编写一个程序,首先显示一个菜单,然后根据用户的选择,输入数据后,执行相应的操作。

[输入]用户选择和函数自变量值[输出]如下菜单:=======MENU======1.。

sin2.。

cos3.。

pow4.。

sqrt0.。

exit==================[提示]使用标准库函数、多分支选择结构。

源代码:#include <stdio.h>#include <math.h>void main(){int choice,n;double x,z;printf ("======MUNE======\n");printf ("1..........sin\n");printf ("2..........cos\n");printf ("3..........pow\n");printf ("4..........sprt\n");printf ("0..........exit\n");printf ("请输入:");scanf ("%d",&choice);switch (choice){case '1':{printf ("请输入角度:");scanf ("%lf",&x);x=(x*3.14/180);z=sin(x);printf ("%lf的sin值为:%lf",x,z);break;}case '2':{printf ("请输入角度:");scanf ("%lf",&x);x=(x*3.14/180);z=cos(x);printf ("%lf的cos值为:%lf",x,z);break;}case '3':{printf ("请输入x和n:");scanf ("%lf%d",&x,&z);z=pow(x,n);z=sin(x);printf ("%lf的sin值为:%lf",x,z);break;}case '4':{printf ("请输入x:");scanf ("%lf",&x);if (x>=0){z=sprt(x);printf ("%lf的sqrt值为:%lf",x,z);}elseprintf ("Wrong");break;}case '0':{break;default:printf ("Wrong");}printf("\n");}2.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

数组实验报告

数组实验报告

数组实验报告姓名:学号:班级:计科1501班任课教师:一、实验目的掌握数组的排序、复制等操作二、实验要求实现编程代码,得出最后实验效果图三、实验内容1.编程实现:从键盘接收人任意个整数,并将其存放在数组中,然后求出该数组中的最大值(考察知识点:数组的length属性,求最大值的方法:打擂台).实验效果图如下:2。

编程实现:有一整型数组a,其中数据为3、4、5、1、2、6,编程实现将数组a复制到数组b中(考察知识点:数组的复制)3.编程实现:有一字符串数组,其中的数据有”张三”,”李四",”王五”,”赵六” ,"田七”,"李八" 。

编程查找该数组中是否包含”麻子"。

(考察知识点:数组的查找)实验效果图如下:4。

编程实现:有一整型数组,其中的数据有1、22、33、44、55、66、77.现将34插入到该数组中,并不打乱原来的升序(考察知识点:数组的插入。

提示:先将34替换到77)实验效果图如下:5。

编程实现:有一整型数组,其中数据为34,23,12,56,77,89。

编程实现对数组元素进行升序排序,并输出排序后的结果。

(考察知识点:数组的定义、排序,请使用冒泡排序、选择排序、Array。

sort()三种方法进行排序)6。

编程实现:有一3行3列的2维数组,其中数据为1、2、3、4、5、6、7、8、9。

编程实现其数据的输出(考察知识点:二维数组的赋值、输出)7。

编程实现:综合实例:学生成绩管理系统。

实验效果图如下:四、实验代码(含注释)1、import java.util。

Scanner;public class L1 {public static void main(String[] args){Scanner in=new Scanner(System。

in);System.out.print(”请输出数组的长度:");int num=in。

实验4-数组

实验4-数组

数组一维数组1. 用Array函数生成一个包含10个整数的一维数组,并在窗体上输出,然后分别统计其中正数之和与负数之和,运行效果如图所示。

2. 随机生成10个两位正整数,求其中的最大值和平均值,并将结果显示出来,运行效果如图所示。

3. 实现以下程序功能:程序运行后,在四个文本框中各输入一个整数。

然后单击命令按钮,即可使数组按升序排序,并在文本框中显示出来。

提示:可用array函数生成数组。

二维数组1. 设有一个二维数组A(5,5),给所有数组元素赋值为1-9之间的随机整数,试计算:●所有元素之和。

●所有靠边元素之和。

●正对角线上元素之和。

2. 设有一个二维数组A(5,5),试计算矩阵第三行各项的和,并在窗体上显示出来。

3. 设有一个二维数组A(5,5),试找出正对角线上最大的值。

4.产生一个二维数组A(5,5),要求中心位置值为9,对角线位置值为1,其余位置值为0。

5.设有一个二维数组A(4,4),请交换其中的第二列和第四列,并显示。

6. 实现以下程序功能:运行程序时,随机产生一个4行4列的二维数组,单击“计算”命令按钮时,将统计矩阵两个对角线的元素中能被3整除的个数,统计结果显示在标签lblfirst中;同时计算矩阵主对角线的元素之和,计算结果显示在标签lblSecond中。

列表框和组合框1. 设在窗体中有一个名称为List1的列表框,其中有若干项目。

要求选中一项后单击Command1按钮,就删除选中的项,运行效果如图所示。

点击前选中”北京”点击按钮后删除2. 窗体上有一个组合框,其中已输入了若干项目。

程序运行时,单击其中一项,即可以把该项与上面的一项交换,运行效果如图所示。

点击前选中”重庆”点击后交换3.有10位同学的VB课程的期末成绩,信息如下:82、75、91、65、57、44、78、64、95、62,请将他们的信息保存到数组中,显示在列表框中,在“优秀”、“通过”和“不通过”三个分数段的人数进行统计。

java实验报告--数组

java实验报告--数组

java实验报告--数组实验名称:Java实验报告--数组实验目的:通过本次实验,掌握Java中数组的基本概念、声明和初始化方法,以及数组的基本操作和常见问题解决方法。

实验过程:1. 数组的声明和初始化在Java中,数组是一种特殊的数据类型,用于存储同一类型的多个数据。

数组的声明和初始化可以通过以下方式进行:```javaint[] arr1 = new int[5]; // 声明一个长度为5的整型数组int[] arr2 = {1, 2, 3, 4, 5}; // 声明并初始化一个整型数组String[] arr3 = new String[]{"Java", "C", "Python"}; // 声明并初始化一个字符串数组```2. 数组的基本操作数组的基本操作包括访问元素、修改元素、获取数组长度等。

例如:```javaint[] arr = {1, 2, 3, 4, 5};System.out.println(arr[0]); // 访问数组的第一个元素arr[1] = 10; // 修改数组的第二个元素System.out.println(arr.length); // 获取数组的长度```3. 数组的常见问题解决方法在使用数组时,常见的问题包括数组越界、空指针异常等。

针对这些问题,可以采取以下解决方法:- 使用循环结构遍历数组时,注意控制循环变量的范围,避免数组越界;- 在访问数组元素之前,先判断数组是否为空,避免空指针异常的发生。

实验结果:通过本次实验,我掌握了Java中数组的基本概念、声明和初始化方法,以及数组的基本操作和常见问题解决方法。

在实际编程中,我能够更加灵活地运用数组,提高代码的效率和可靠性。

结论:数组是Java中非常重要的数据结构,掌握数组的基本概念和操作方法对于编写高效、健壮的程序至关重要。

通过本次实验,我对数组有了更深入的了解,为以后的Java编程打下了坚实的基础。

C语言程序设计实验数组

C语言程序设计实验数组

实验4:数组一、实验目的1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;2.掌握字符数组和字符串函数的使用;3.掌握与数组有关的算法(特别是排序算法)。

二、实验内容编写程序,实现如下功能:1.对N个自然数进行从大到小排序(N可定义为任意大于1的常数,如:#define N 15),并找出其中的质数。

质数(prime number)又称素数,定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

2.打印杨辉三角(打印N行,N为6到10间的常数)11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1::::::并通过程序计算:第10行第5列是多少?第50行第25列呢?(提示:无需输出所有行,将要求计算的结果用printf函数打印到屏幕上即可)3.有一行电文,已按下面规律译成密码:A→Z a→zB→Y b→yC→X c→x: :即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母;非字母字符不变。

要求编程将密码译回原文,并打印出密码和原文。

(注意:为提高程序可读性,不要直接使用字符的ASCII码。

)三、实验结果记录第1题上机调试后的最终代码及上机调试结果(截图):程序代码:程序结果:第2题上机调试后的最终代码及上机调试结果(截图):程序代码:程序结果:第3题上机调试后的最终代码及上机调试结果(截图):程序代码:程序结果:四、实验小结:经过本次实验我对一维数组以及二维数组有了更加深刻的掌握,加深了我对字符串数组的认识,除此之外,我学会了在数据较大时用double防止数据溢出,同时更加熟悉了选择排序和冒泡排序的算法。

数组程序实验报告

数组程序实验报告

一、实验目的1. 理解数组的概念和基本操作。

2. 掌握数组的创建、初始化、赋值、遍历、排序等基本操作。

3. 通过实验加深对数组在实际问题中的应用。

二、实验环境1. 操作系统:Windows 102. 编程语言:C++3. 编译器:Visual Studio 2019三、实验内容1. 数组的创建与初始化2. 数组的赋值与遍历3. 数组的排序四、实验步骤1. 数组的创建与初始化(1)创建一个整型数组,名为array,大小为10。

```cppint array[10];```(2)使用循环对数组进行初始化。

```cppfor (int i = 0; i < 10; i++) {array[i] = i 2;}```2. 数组的赋值与遍历(1)将一个整型变量value赋值给数组的第一个元素。

```cppint value = 100;array[0] = value;```(2)使用循环遍历数组,打印每个元素的值。

```cppfor (int i = 0; i < 10; i++) {cout << "array[" << i << "] = " << array[i] << endl; }```3. 数组的排序(1)选择排序算法对数组进行排序。

```cppfor (int i = 0; i < 10 - 1; i++) {int minIndex = i;for (int j = i + 1; j < 10; j++) {if (array[j] < array[minIndex]) {minIndex = j;}}int temp = array[i];array[i] = array[minIndex];array[minIndex] = temp;}```(2)打印排序后的数组。

数组运用实验报告

数组运用实验报告

一、实验目的1. 理解数组的概念和特点。

2. 掌握数组的创建、初始化、访问和修改方法。

3. 熟悉数组的常用操作,如排序、查找、插入和删除等。

4. 培养编程思维和问题解决能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:C++3. 开发工具:Visual Studio 2019三、实验内容1. 数组的创建与初始化2. 数组的访问与修改3. 数组的排序4. 数组的查找5. 数组的插入与删除四、实验步骤1. 数组的创建与初始化(1)创建一个整型数组,名为array,大小为10。

(2)使用循环初始化数组,将数组元素值设置为1到10。

2. 数组的访问与修改(1)使用循环遍历数组,打印出数组中的每个元素。

(2)修改数组中第5个元素的值为20。

3. 数组的排序(1)使用冒泡排序算法对数组进行排序。

(2)打印排序后的数组。

4. 数组的查找(1)使用顺序查找算法查找数组中是否存在值为15的元素。

(2)如果找到,打印该元素的位置;如果没有找到,打印“未找到”。

5. 数组的插入与删除(1)在数组中第3个位置插入一个新元素,值为30。

(2)删除数组中第6个位置的元素。

五、实验结果与分析1. 数组的创建与初始化代码如下:```cpp#include <iostream>using namespace std;int main() {int array[10];for (int i = 0; i < 10; i++) {array[i] = i + 1;}return 0;}```2. 数组的访问与修改代码如下:```cpp#include <iostream>using namespace std;int main() {int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; for (int i = 0; i < 10; i++) {cout << array[i] << " ";}cout << endl;array[4] = 20;return 0;}```3. 数组的排序代码如下:```cpp#include <iostream>using namespace std;void bubbleSort(int array[], int length) {for (int i = 0; i < length - 1; i++) {for (int j = 0; j < length - 1 - i; j++) { if (array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}}int main() {int array[10] = {5, 3, 8, 6, 2, 7, 4, 1, 9, 10}; bubbleSort(array, 10);for (int i = 0; i < 10; i++) {cout << array[i] << " ";}cout << endl;return 0;}```4. 数组的查找代码如下:```cpp#include <iostream>using namespace std;int main() {int value = 15;int found = 0;for (int i = 0; i < 10; i++) {if (array[i] == value) {found = 1;break;}}if (found) {cout << "找到元素,位置为:" << i << endl; } else {cout << "未找到" << endl;}return 0;}```5. 数组的插入与删除代码如下:```cpp#include <iostream>using namespace std;int main() {int insertValue = 30;int insertIndex = 3;int deleteIndex = 6;for (int i = 10; i > insertIndex; i--) {array[i] = array[i - 1];}array[insertIndex] = insertValue;for (int i = deleteIndex; i < 9; i++) {array[i] = array[i + 1];}for (int i = 0; i < 10; i++) {cout << array[i] << " ";}cout << endl;return 0;}```六、实验总结本次实验通过C++编程,学习了数组的基本操作,包括创建、初始化、访问、修改、排序、查找、插入和删除等。

数组实现的实验报告

数组实现的实验报告

一、实验目的1. 理解数组的定义和基本操作。

2. 掌握数组的初始化、赋值、访问和修改等方法。

3. 熟悉数组的常见应用场景,如排序、查找等。

二、实验环境1. 操作系统:Windows 102. 编程语言:C++3. 编译器:Visual Studio 2019三、实验内容1. 数组的定义与初始化2. 数组的访问与修改3. 数组的排序与查找四、实验步骤1. 数组的定义与初始化(1)定义一个整型数组,大小为10。

```cppint arr[10];```(2)使用循环为数组赋值。

```cppfor (int i = 0; i < 10; i++) {arr[i] = i 2;}2. 数组的访问与修改(1)访问数组元素。

```cppcout << "arr[5] = " << arr[5] << endl;```(2)修改数组元素。

```cpparr[5] = 20;```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;}```五、实验结果与分析1. 数组的定义与初始化通过定义一个整型数组,并使用循环为其赋值,我们成功创建了一个大小为10的数组。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
编程点拨:
①初始化row、colum及max。
②使用for循环的双重循环逐行把元素值与max值进行比较,比较结果如果元素值比max值大,则改变max值,同时改变row和colum的值。
③最后输出max,row和colum的值。
相关知识:①二维数组的定义和初始化;②使用二重循环对二维数组元素的访问;③求最值时相关变量初值的设定。
av+=a[i];
printf("av=%f\n",av);
}
上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意数组元素的输入问题、输出格式问题等。请使用前面实验所掌握的调试工具,判断程序中的错误并改正。
相关知识:①数组元素值的输入;②求和求平均值的相关变量初始化问题;③输出格式符的正确使用。④数组元素的格式化输出。
部分源代码:
k=0;
if ( a[k]<a[1] )真
k=1;执行
if ( a[k]<a[2] )假
k=2;不执行
if ( a[k]<a[3] )真
k=3;执行
相关知识:①删除数组元素的概念;②移动数组元素的算法;③求最大值位置的算法。
7.以下c50107.c程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空:
#include <stdio.h>
voidmain( )
{int i, j, row, colum, max;
static int a[3][4] = {{1,2,3,4}, {9,8,7,6}, {-10,10,-5,2}};
……
printf(" Max = %d, Row = %d, Colum = %d \n", max, row, colum);
j=1 a[j] ≥k?即18 ≥15 ?是j++
j=2 a[j] ≥k?即16 ≥15 ?是j++
j=3 a[j] ≥k?即14 ≥15 ?不是,结束循环
while( a[j]>=k && j<10 ) j++;
找不到比k小的元素时也要退出循环
③向右移动插入点后的元素;先把a[9]移到a[10],a[8]移到a[9],…a[i]移到a[i+1],直到把a[j]移到a[j+1],即:i=j停止移动元素。
#include <stdio.h>
#include <string.h>
void main()
{ char a[10],b[10];
int c,d,k,ch;
scanf("%s",&a);
scanf("%s",&b);
printf("a=%s,b=%s\n",a,b);
c=strlen(a);
d=strlen(b);
将整个字符串一次输入或输出。用“%s”格式符,意思是输出字符串(string),此时输入输出函数中的输入输出项是字符数组名,而不是数组元素名。写成下面这样是不对的:printf("%s",c[0]);
② gets()函数和scanf()函数输入字符串的区别,puts()函数和printf()函数输出字符串的区别;
1 4 6 4 1
1 51010 5 1
编程点拨:
杨辉三角形有如下特点:
只有下半三角形有确定的值;
第一列和对角线上的元素值都是1;
其它元素值均是前一行同一列元素与前一行前一列元素之和。
9.调试下列c50201.c程序,使之具有如下功能:任意输入两个字符串(如:“abc 123”和“china”),并存放在a,b两个数组中。然后把较短的字符串放在a数组,较长的字符串放在b数组。并输出。
实验四
一、实验目的及要求
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;
2.掌握字符数组和字符串函数的使用;
3.掌握与数组有关的算法(特别是排序算法)。
二、实验学时
6学时
三、实验任务
1.调试下列c50101.c程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。
else printf("Not found%d\n",x);
}
5.编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。
编程点拨:
①定义数组时多开辟一个存储单元;
②找合适的插入位置;
j=0 a[j] ≥k?即20 ≥15 ?是j++
scanf("%s", s1);
printf(" \n Please input string2:");
scanf("%s", s2);
while (s1[i]!= '\0' )
i++;
while (s2[j]!= '\0' )
s1[i++]=s2[j ++];
s1[i]= '\0';
printf("\n New string: %s", s1);
printf("sum = %d \n", sum);
}
该程序中有哪些错误?如何修改?写出正确运行后的结果。
相关知识:数组元素的输入和输出只能逐个元素操作,而不能以数组名作整体操作。
3.有一个3行4列的距阵,现要求编程求出其中最大的那个元素的值,以及它所在的行号与列号。程序c50103.c的初始说明和输出语句如下所示,请补充完成该程序。
voidmain ( )
{ int num[26],i; charc;
for (i=0;i<26;i++) num[i]=0;
while ((1)!='#') /*统计从终端输入的大写字母个数*/
if (isupper(c)) num[c-65](2);
for (i=0;i<26;i++) /*输出大写字母和该字母的个数*/
#include <stdio.h>
voidmain ( )
{ char str1[100],str2[100];
int i,s;
printf("\n Input string 1:\n");gets(str1);
printf(“\n Input string 2:\n”);gets(str2);
i=(1);
if(c>d)
for(k=0;k<d;k++)
{ ch=a[k];a[k]=b[k];b[k]=ch;}
printf("a=%s\n",a);
printf("b=%s\n",b);
}
相关知识:程序中的strlen()是库函数,功能是求字符串的长度,它的原型保存在头文件"string.h"中。调试时注意库函数的调用方法,不同的字符串输入方法,通过错误提示发现程序中的错误。
六、注意事项
1.对应该有花括号的复合语句,忘记加花括号
2.在不该加分号的地方加了分号
3.引用数组元素时误用圆括号
4.引用数组元素超界
5.对二维或多维数组定义和引用的方式不对
6.误以为数组名代表整个数组
7.混淆字符数组与字符指针的区别
#include <stdio.h>
voidmain( )
{ float x[1000], sum=0.0, ave, a;
int n=0, i;
printf ("Enter mark : \n") ;
scanf("%f", &a);
while (a>=0.0 && n<1000)
{ sum+=;
x[n]=;
③求每个字符串的长度函数strlen()的使用,字符串比较函数strcmp()的使用;
④二维数组处理多个字符串。
14.编写程序,输入字符串s1和s2以及插入位置f,在字符串s1中的指定位置f处插入字符串s2。如:输入"BEIJING"、"123"和位置3,则输出:"BEI123JING123"。
四、实验重点、难点
}
编辑、运行该程序,然后分别输入Country和side。请问:
程序执行的结果是什么?
该程序的功能是什么?
相关知识: 串结束符’\0’; 自编写库函数。
11.填空完成c50203.c程序,使其功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。程序如下:
for(i=9;i>=j;i-- ) a[i+1]=a[i];
c50105.c部分源代码:
#include<stdio.h>
#define N 11
voidmain()
{ int i,j,a[N];
printf(“Please input 10 numbers:”);
for (i=0; i<N-1; i++)
n++;
scanf("%f", &a);
}
ave=;
相关文档
最新文档