实验五 数组_2010

合集下载

数组及应用实验报告

数组及应用实验报告

一、实验目的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语言实验五实验报告——数组一、实验目的:1.了解数组的概念和基本使用方法;2.掌握一维数组和二维数组的定义、初始化、赋值及基本运算实现;二、实验内容与方法1.理论部分数组是一些具有相同类型的数据元素按一定顺序排列组合而成的集合,在程序设计中它是一个变量列表,由若干相同数据类型的元素组成。

通常用一个名字和一个下标来表示,下标可理解为数组元素在数组中的位置编号。

数组的特点:数组是根据顺序排列的元素的集合;所有的元素必须是相同类型。

数组的定义方法:1. 定义数组,数组元素类型 + 数组名[元素的个数];2. 元素的个数必须是整型常量或变量,定义时必须明确、指定元素的个数;3. 声明一个数组时,除了要指定数组的类型外,还要指定数组的名称;4. 数组定义完后,需要对其中的每个元素进行初始化。

可以在定义数组时赋初值,也可以通过赋值符号,对数组元素逐个进行赋值。

数组的初始化:1. 元素个数之间用逗号分开,最后1个元素后无逗号;2. 支持部分元素初始化;3. 定义和初始化可以一步完成。

二维数组数组可分为一维和多维数组。

一维数组可以看作是包含多个元素的向量,而二维数组可以看做是包含了多个一维数组的矩阵。

二维数组有行号和列号,因此,它同样需要两个下标。

数组元素类型数组名[行数][列数];数组元素类型数组名[ ][ ] = { {元素1, 元素2, ……}, {元素1, 元素2, ……}, ……{元素1, 元素2, ……}}2.实验代码**问题1:**定义一个一维数组a,包含有5个元素,分别为1,2,3,4,5;**问题2:**定义一个一维数组a,接收用户从键盘输入的5个数值,分别打印存储的各个元素。

三、实验结果与分析结果分析:定义了一个5个元素的一维数组a,并初始化了各个元素的值,其元素分别为1,2,3,4,5.循环遍历一遍数组a,并打印数组元素。

程序执行正常。

3.针对问题3:定义一个二维数组a,由4行3列组成,每个元素初始化为0,打印存储的各个元素;程序运行结果如下:四、实验总结:该实验主要是通过对C语言数组的理论知识和基本操作进行练习,加深了对数组的了解和掌握。

第五组--信号波形合成电路实验(2010年电子竞赛C题论文)2

第五组--信号波形合成电路实验(2010年电子竞赛C题论文)2
1
高,在高压、高频、大功率的场合不适用。 综合以上的分析,由 TI 公司生产的宽带低失真单位增益稳定的电压反馈运算放
大器 OPA842 组成的滤波电路满足本次设计的要求,因此选择方案二。 1.1.3 移相电路
方案一:用双极性运算放大器 OP07 组成的移相电路,由于 OP07 具有非常低的 输入失调电压,所以在很多应用场合不需要额外的调零措施。OP07 是一种低噪声, 非斩波稳零的双极性运算放大器,由它组成的移相电路具有电路简单、工作可靠、成 本低、波形好、适应性强,而且可以提供 180°的相移。
表一:信号编码表
A0
A1
X
1
0
0
1
0
波形 正弦波 方波 三角波
A0、A1 表示波形设定端;X 表示任意状态;1 为高电平;0 为低电平。 74LS14 非门对输出的信号进行整形,使输出的波形更加的理想。 3.1.2 分频电路 分频电路如附录图 3 所示,由 74LS90、74LS00、CD4013 三片芯片组成。先将 300KHz 的方波信号进行 3 分频、5 分频、15 分频,再通过 D 触发器二分频,最终得到 50KHz、 30KHz、10KHz 的正弦波信号。 74LS90 不仅可以用于计数,还能用于分频,一片 74LS90 可构成最大进制计数器 是十进制,若分频数大于 10,则要用两片或多片级联,级联后高位的周期即为分频 后的周期,但占空比并非 50%,这就需要用 D 触发器对分频后的方波进行整形。74LS00 是四集成与非门,在电路中起缓冲隔离的作用。CD4013 是由两个相同的、相互独立 的数据型触发器构成。每个触发器有独立的数据、置位、复位、时钟输入和 Q 及 Q
方案三:用 MAX038 精密、高频波形发生器来产生方波信号,电路结构简单,能产 生 0.1Hz~20MHz 的方波信号,波形的频率和占空比可以由电流、电压或电阻控制 。 MAX038 构成的电路低失真、低漂移、外围元件少、可靠性和稳定性好,但相对于上 面的方案而言,价格会稍高一点。

程序设计实验报告总结.doc

程序设计实验报告总结.doc

程序设计实验报告总结实验五使用数组的程序设计班级学号姓名一、实验目的(1)掌握一维数组和二维数组的定义、赋值和输入输出方法。

(2)掌握字符数组的使用。

(3)掌握与数组有关的算法。

二、实验内容及步骤1、验证性实验输入已编好的源程序,然后进行编辑、编译、连接和运行,观察运行结果。

(1)某数列前两项为0,1,以后各项均为前相邻两项之和,输出该数列前20项。

#include<stdio.h>main(){long i,x[20];x[0]=0;x[1]=1;for(i=2;i<20;i++)x[i] =x[i-1]+x[i-2];for(i=0;i<20;i++)printf("% ld\t",x[i]);}输出结果:(2)从键盘输入N个自然数,然后按升序进行排列。

用;比较法;#include<stdio.h>#define N 10main(){int a[N],t,i,j;for(i=0;i<N;i++) /*本循环输入N个原始数据*/scanf ("%d", &a[i]);for(i=0;i<N-1;i++) /*本循环完成排序*/for(j=i+1;j<N;j++) /* x[i]与它后边所有元素逐一比较,大则交换*/if (a[j]<a[i]) {t=a[j];a[j]=a[i];a[i]=t;}for(i=0;i<N;i++) /* 输出排序后的数组*/printf(" %d",a[i]);}输出结果:2、完成以下程序,并进行调试(1)从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别统计下列内容:a)统计不及格人数并打印不及格学生名单;b)统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单;c)统计各分数段的学生人数及所占的百分比程序代码:#include<stdio.h>int F1(int i,int sum,int *a,int *counter){int j;printf("不及格学生名单:");for(j=1;j<i-1;j++){sum+=a[j];if(a[j]<60){printf("%3d",j);counter[0]++;}}return sum;}F2(int i,float average,int *a,int *counter){int j;printf("average=%f,成绩大于等于平均分的学生名单:",average);for(j=1;j<i-1;j++){if(a[j]>=average){printf("%3d",j);counter[11]++;}}}F3(int i,int *a,int *counter){int j;for(j=1;j<i-1;j++){if(a[j]<=10) counter[1]++;else if(a[j]>10&&a[j]<=20) counter[2]++;else if(a[j]>20&&a[j]<=30) counter[3]++;else if(a[j]>30&&a[j]<=40) counter[4]++;else if(a[j]>40&&a[j]<=50) counter[5]++;else if(a[j]>50&&a[j]<=60) counter[6]++;else if(a[j]>60&&a[j]<=70) counter[7]++;else if(a[j]>70&&a[j]<=80) counter[8]++;else if(a[j]>80&&a[j]<=90) counter[9]++;else if(a[j]>90&&a[j]<=100) counter[10]++;}printf("各分数段人数: 百分比:\n");for(j=1;j<=10;j++)printf("%d %f\n",counter[j],(float)(counter[j])/(i-2)); }main(){static int a[31],counter[12],flag;int i=1,j=1,sum=0;float average;printf("请输入学生成绩并以负值结束: ");do{scanf("%d",&a[i]);if(a[i]<0)flag=1;i++;}while(flag==0);sum=F1(i,sum,a,counter);printf("不及格人数=%d\n",counter[0]);average=(float)sum/(i-2);F2(i,average,a,counter);printf("大于等于平均分人数=%d\n",counter[11]);F3(i,a,counter);}运行结果:(2)编写一个程序,利用字符数组实现两个字符串的比较。

Vb实验五数组的应用

Vb实验五数组的应用

《Visual Basic 6.0程序设计》实验报告(五)一、实验名称:数组的应用(4学时)二、实验目的:1.掌握数组的声明和数组元素的引用;2.掌握静态数组和动态数组的声明和使用;3.学会应用数组解决与数组有关的常用算法问题;4.掌握控件数组的建立和应用。

三、实验环境多媒体计算机WindowsXP操作系统Visual Basic 6.0四、实验内容及实验步骤(或记录)1.输入10名同学的成绩,求平均分、最高分和最低分。

设计步骤如下:①在窗体上添加3个标签(Label1、Label2和Label3)和3个文本框(Text1、Text2和Text3),设计界面如图7.2所示。

各控件的主要属性和作用如表1所示。

控件的属性和作用②编写程序代码如下:Private Sub Command1_Click()Dim Score(1 To 10) As Integer '声明存放成绩的数组ScoreDim i As Integer,Max As Integer,Min As Integer,Average As SingleFor i = 1 To 10 '逐一输入每个同学的成绩Score (i) = Val (InputBox ("输入第" & Str(i)& "个学生的成绩","成绩统计",""))Next iEnd SubPrivate Sub Command2_Click()Dim i As IntegerDim sum As Single, aver As Singlesum = Score (1) ' sum 用于存放总成绩,初值为数组中的第一个元素Max = Score (1) ' 设变量Max的初值为数组中的第一个元素Min = Score (1) ' 设变量Min的初值为数组中的第一个元素For i = 2 To 10 ' 通过循环依次比较,求最大、最小值;求总和If Score(i) > Max Then Max = Score(i)If Score(i) < Min Then Min = Score(i)sum = sum + Score(i)Next iaver = sum / 10 ' 求平均值Text1.Text = Format (Average, "0.00 " ) ' 以两位小数显示平均值Text2.Text = MaxText3.Text = MinEnd Sub2.生成20个0到100之间的随机整数存于数组A,然后将这20个数按递增顺序排序。

数组实验报告

数组实验报告

实验四使用数组的程序设计学号姓名一、实验目的1、正确理解数组的概念,熟练掌握一维数组和二维数组的定义和初始化方法。

2、熟练掌握字符数组和字符串的区别和使用、字符串函数的使用。

3、熟练掌握一维数组、二维数组以及字符串的输入和输出方法。

4、了解数组的地址、数组元素的地址及一维数组和二维数组的存储结构。

5、掌握字符窜的结束标志,正确使用字符串的结束标志对字符串进行处理。

6、通过编程和调试程序,加深对数组、字符数组和字符串函数应用的理解。

7、实验前复习数组、字符数组和字符串函数的概念。

二、实验内容1、打印fabonacci数列的前20项,该数列前两项为1,以后各项均为前相邻两项之和。

程序代码:#include "stdio.h"void main(){int a[20],i;a[0]=1;printf("%d\t",a[0]);a[1]=1;printf("%d\t",a[1]);for(i=2;i<20;i++){a[i]=a[i-1]+a[i-2];printf("%d\t",a[i]);}}对程序进行测试,并观察运行结果。

将程序的运行情况写在下面。

『运行结果:』2、从键盘输入一个班学生(最多30人)的成绩,然后按降序进行排列。

程序代码:#include "stdio.h"#define N 30void main(){int a[N],i,t,k=1;printf("请输入30个人的成绩,中间用空格隔开,并按回车结束:\n");for(i=0;i<N;i++)scanf("%d",&a[i]);while(k<N){for(i=N-1;i>0;i--)if(a[i]>a[i-1]){t=a[i];a[i]=a[i-1];a[i-1]=t;}k++;}for(i=0;i<N;i++){printf("%d\t",a[i]);}printf("\n");}对程序进行测试,并观察运行结果。

C语言实验五实验报告——数组

C语言实验五实验报告——数组

C语言实验五实验报告——数组实验五:数组实验目的:1.掌握数组的定义和使用;2.熟悉数组在函数中的传递;3.练习编写使用数组的程序。

实验原理:数组是一组相同类型的变量的集合,这些变量称为数组的元素。

数组的名字是一个指针常量,它存放的是数组首个元素的地址。

数组元素在内存中是连续存放的,可以通过下标访问每一个元素。

数组的定义:数组的定义格式为:数据类型数组名[数组长度];数组的初始化:数组可以在定义时进行初始化,也可以在定义之后通过赋值进行初始化。

数组作为函数参数:数组可以作为函数的形参进行传递,可以通过指针传递整个数组,也可以传递数组的部分元素。

实验步骤:1.编写一个程序,实现对学生成绩的管理。

要求如下:-使用一个数组保存学生的成绩;-能够动态添加学生的成绩,并显示添加成功的信息;-能够计算学生的平均成绩,并显示;-能够根据用户输入的学号查找对应学生的成绩,并显示。

2.编写一个程序,实现对一组整数进行排序。

要求如下:-首先自定义一个整数数组,数组元素个数为用户输入;-编写一个函数,实现对数组进行排序,要求使用选择排序算法;-在主函数中调用该函数,对数组进行排序后显示。

实验结果与分析:1.学生成绩管理程序运行结果如下:```-------学生成绩管理系统-------[1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:1请输入成绩:90添加成功![1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:1请输入成绩:85添加成功![1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:2平均成绩为:87.5[1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:3 [1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:4退出系统。

```2.整数排序程序运行结果如下:```-------整数排序-------请输入待排序的整数个数:6请输入第1个整数:5请输入第2个整数:3请输入第3个整数:9请输入第4个整数:2请输入第5个整数:7请输入第6个整数:1排序前的整数序列为:539271排序后的整数序列为:123579 ```实验总结:通过本次实验,我深入理解了数组的原理和用法,并且掌握了数组在函数中的传递。

2010级用高级语言程序设计实验报告quan

2010级用高级语言程序设计实验报告quan

2010级用高级语言程序设计实验报告quan《高级语言程序设计》实验报告实验室名称:班级:学生姓名:学号:指导教师:学期:2009-2010学年上学期实验1 C 程序设计入门一、实验目的1、熟悉C 编程环境2、掌握简单C 程序的编辑、编译和运行方法二、知识要点1、用printf 函数输出指定字符串(转义字符的使用)2、计算并输出表达式的值3、程序书写风格三、实验预习(要求做实验前完成)1、若要在屏幕输出信息,需要用到库函数:2、输出的信息若需换行,需要用到换行符:3、按C 语言语法规则写出下列算法的表达式(1)26乘以49,再除以17:(2)求29除以6的余数:四、实验内容 (要求提供:① 算法描述或流程图② 源程序 )1、编程输出“我的信息”,包括姓名、性别、专业名称和课程名称,格式为:姓名:性别:专业名称:课程名称:2、编程求以下表达式的值:1491516232+-+ 3、编程计算并输出16.8与27.5两个数的和、差、积、商,要求输出界面为:和是:差是:积是:商是:五、实验结果要求写出运行界面并输出运行结果实验2─3 数据类型、常量变量及顺序结构程序设计一、实验目的1、掌握常量和变量的概念以及使用1、掌握变量的定义、赋值与引用2、掌握顺序结构相关语句的使用3、掌握scanf和printf输入、输出数据的方法二、知识要点1、变量与常量概念2、数据输入、输出的格式控制3、标准库函数与头文件的使用4、算术运算与赋值运算5、数据类型转换三、实验预习(要求做实验前完成)1、假如要定义两个整型变量x和y,语句int x y;错在哪里?2、把a的值赋给b,其语句是:3、如果使用语句scanf(“%d%d”,&x,&y);输入8和9两个整数,其输入格式应该是:4、如果使用语句scanf(“%d,%d”,&x,&y);输入8和9两个整数,其输入格式应该是:5、程序中如果要用到库函数sin,则应包含头文件:6、假设x是一个实型变量,语句printf(“%d”,x);错在哪里?7、语句x=10; y=20; printf(“y=%d, x= %d”,x,y); 能否交换x和y的值?四、实验内容(要求提供:①算法描述或流程图②源程序)1、输入两个人的身高,计算并输出他们的平均身高。

数组菜单制作实验报告

数组菜单制作实验报告

一、实验目的1. 理解数组的基本概念和应用场景。

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

3. 学会使用数组实现简单的菜单制作功能。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3. 开发工具:PyCharm三、实验内容本次实验通过使用数组实现一个简单的菜单制作功能,主要分为以下几个步骤:1. 创建数组存储菜单项2. 打印菜单3. 获取用户输入并处理4. 根据用户选择执行相应操作四、实验步骤1. 创建数组存储菜单项```pythonmenu = ["1. 添加商品", "2. 查看商品", "3. 修改商品", "4. 删除商品", "5. 退出"]```2. 打印菜单```pythonprint("欢迎使用商品管理系统!")for i in range(len(menu)):print(f"{i + 1}. {menu[i]}")```3. 获取用户输入并处理```pythonwhile True:choice = input("请选择操作(1-5):")if choice == '5':print("感谢使用,再见!")breakelif choice in ['1', '2', '3', '4']:print(f"您选择了:{menu[int(choice) - 1]}") # 这里可以添加相应操作的具体实现else:print("输入有误,请重新输入!")```4. 根据用户选择执行相应操作```pythonif choice == '1':# 添加商品passelif choice == '2':# 查看商品passelif choice == '3':# 修改商品passelif choice == '4':# 删除商品pass```五、实验结果1. 运行程序后,首先显示欢迎信息,然后打印出菜单。

☆C语言实验五(第七章一维数组:排序综合题)

☆C语言实验五(第七章一维数组:排序综合题)

【2008春上机编程题_C07】【解题思路】:在理解上述要求基础上,只用一个主函数完成:找出Fibonacci 数列的前40个数,存放在一维数组m[40](声明长整型变量long)中,然后找出其中所有素数,存放在一维数组n[40]中(提示:n数组要求对素数总数以k计数),再选用一种排序法对一维数b进行降序排列,最后按长整型量以“%9ld”形式、一行五个数据将满足条件的数据输出到屏幕:【提示】:排序方法有“简单起泡法”;“双向起泡法”;“选择法”;所以要求学生在调试上述程序基础上按班组选取排序方法,编写本次作业。

(约定:起始Fibonacci数列存放在一维数组m[40]中,挑选出的素数存放在一维数组n[40]中,最后以升序排列的数组n输出,满足素数的个数设定为k)。

(参考教科书P134)(参考上机指导书P54例7.5、2010春完善程序题第15题或软件第七章填空第15题)原理为“下列程序的功能是对n数组n[0]~a[k-1]中存储的k个整数从大到小排序。

排序算法是:第一趟通过比较将k个整数中的最小值放在a[k-1]中,最大值放在a[0]中;第二趟通过比较将k个整数中的次小值放在a[k-2]中,次大值放在a[1]中,………,依次类推,直到待排序序列为递减序列。

”P50例7.2)【软件第七章】选择:1,下列一维数组的声明中,正确的是____(22)_____。

A. int a[];B. int n=10,a[n];C. int a[10+1]={0};D. int a[3]={1,2,3,4};5.以下程序运行后的输出结果是_____(25)___。

main(){ char a[7]="a0\0a0\0";int i,j;i=sizeof(a);j=strlen(a);printf("%d %d",i,j);}A.2 2B.7 2C.7 5D.6 28.以下声明中错误的是_____(27)_____。

实验五 数组实验

实验五  数组实验

实验五数组的使用一实验目的要求1 掌握数组的概念和使用方法。

2 掌握数组初始化的方法。

3学会字符数组和字符串的应用。

4 学会用数组名作函数的参数。

二有关概念1 只有静态数组和外部数组才能初始化。

2 引用数组时,对下标是否越界不作检查。

如定义int a[5];在引用时出现a[5],不给出错信息,而是引a[4]下面一个单元的值。

3 字符串放在字符数组中,一个字符串以‘/o’结束,有一些字符串函数如strcpy,strcmp,strlen等可以方便一进行字符串运算。

4 如有如下定义:char *str=“I love china”;表示 str是一个字符型指针变量,它的值是一个字符数据的地址。

不要认为str是字符串变量,在其中存放一个字串“I love china”。

5 用数组名作函数实参时,传到形参的是数组的首地址。

三实验内容和步骤1 定义三个数组int a[5];int b[2][2];char c[10];(1)分别在函数体外和函数体内对它们进行初始化,然后输出它们的值。

(2)在程序中再加一语句,输出a[5],b[2][2] ,分析结果。

(3)对C数组改为用赋值语句给各元素赋初值:c[0] ~ c[9]各元素分别为:…I‟, …‟, …a‟, …m‟, …‟, …b‟, …o‟, …y‟。

然后用printf(“%s”,c)输出字符串,分析结果。

参考程序如下:(1)main(){ int i,x,y;static int a[5]={1,2,3,4,5};static int b[3][2]={{3,4},{6,7},{9,5}}static char c[10]={ …i‟, …l‟, …p‟, …q‟, …k‟, …s‟, …d‟, …e‟, …a‟};for(i=0;i<5;i++)printf( “%5d”,a[i]);for(x=0;x<3;x++)for(y=0;y<2;y++)printf(“%5d”,b[x][y]);for(i=0;i<10;i++)printf(“%3c”,c[i]);}(2)结果无此值,在上面程序中要输出a数组第5个元素,和b数组的第3行第2例元素,应加此程序行:Printf(“%d”,a[4]);Printf(“%d”,b[2][1]);2 有一数组,内放10个整数,要求找出最小的数和它的下标。

实验数组的实验报告

实验数组的实验报告

一、实验目的1. 掌握数组的基本概念和操作方法。

2. 熟悉C语言中数组的定义、初始化、赋值和引用。

3. 学会使用数组和循环结构进行数据处理。

二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 编程语言:C语言三、实验内容1. 定义和初始化一维数组2. 访问和修改数组元素3. 使用数组进行数据处理4. 定义和初始化二维数组5. 访问和修改二维数组元素6. 使用二维数组进行数据处理7. 使用数组进行排序和查找四、实验步骤1. 定义和初始化一维数组```c#include <stdio.h>int main() {int array[5] = {1, 2, 3, 4, 5};int i;// 循环访问数组元素for (i = 0; i < 5; i++) {printf("array[%d] = %d\n", i, array[i]); }return 0;}```2. 访问和修改数组元素```c#include <stdio.h>int main() {int array[5] = {1, 2, 3, 4, 5};int i;// 修改数组元素array[2] = 10;// 循环访问数组元素for (i = 0; i < 5; i++) {printf("array[%d] = %d\n", i, array[i]); }return 0;}```3. 使用数组进行数据处理```c#include <stdio.h>int main() {int array[5] = {1, 2, 3, 4, 5}; int i, sum = 0;// 计算数组元素之和for (i = 0; i < 5; i++) {sum += array[i];}printf("sum = %d\n", sum);return 0;}```4. 定义和初始化二维数组```c#include <stdio.h>int main() {int array[3][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int i, j;// 循环访问二维数组元素for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {printf("array[%d][%d] = %d\n", i, j, array[i][j]); }}return 0;}```5. 访问和修改二维数组元素```c#include <stdio.h>int main() {int array[3][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int i, j;// 修改二维数组元素array[1][1] = 10;// 循环访问二维数组元素for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {printf("array[%d][%d] = %d\n", i, j, array[i][j]); }}return 0;}```6. 使用二维数组进行数据处理```c#include <stdio.h>int main() {int array[3][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int i, j, sum = 0;// 计算二维数组元素之和for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {sum += array[i][j];}}printf("sum = %d\n", sum);return 0;}```7. 使用数组进行排序和查找```c#include <stdio.h>// 交换两个元素void swap(int a, int b) {int temp = a;a = b;b = temp;}// 冒泡排序void bubbleSort(int array[], int length) {int i, j;for (i = 0; i < length - 1; i++) {for (j = 0; j < length - 1 - i; j++) { if (array[j] > array[j + 1]) {swap(&array[j], &array[j + 1]); }}}}// 查找元素int findElement(int array[], int length, int target) { int i;for (i = 0; i < length; i++) {if (array[i] == target) {return i;}}return -1;}int main() {int array[5] = {5, 2, 8, 3, 1};int i, index;// 冒泡排序bubbleSort(array, 5);// 输出排序后的数组for (i = 0; i < 5; i++) {printf("%d ", array[i]);}printf("\n");// 查找元素index = findElement(array, 5, 8);if (index != -1) {printf("Element 8 found at index %d\n", index);} else {printf("Element 8 not found\n");}return 0;}```五、实验结果与分析1. 通过定义和初始化一维数组,可以方便地存储和管理一系列具有相同数据类型的元素。

实验报告模板

实验报告模板

实验五数组程序设计班级学号姓名实验地点完成日期成绩(一)实验目的与要求1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;2、掌握字符数组和字符串函数的使用;3、掌握与数组有关的算法。

(二)实验内容1、对于输入的n个整数,先进行升序排序,然后进行二分查找。

(HLOJ 8005)2、如果矩阵A中存在这样的一个元素A[i][j]满足下列条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。

编写一个程序计算出矩阵A的马鞍点的值。

(HLOJ 1208)3、对给定的数据进行排序。

每组测试数据的结构是:第一行为一个整数N(0<N<100),表示后面有N个整数(每个整数最多可达80位)需要排序输出,先按长度排(短的在前),如长度一样则按大小排(小的在前)。

若遇到N等于零,则运行结束。

每组结果之间留一个空行。

(HLOJ 1154)(三)实验具体步骤1、对于输入的n个整数,先进行升序排序,然后进行二分查找。

解题思路:首先,认真解读题目,该题首先是要用到排序,因为还要进行查找二分查找,所以就要有两个数组,设为a数组和b数组,即在a数组中查找b数组里的元素,如果查到就输出该元素在a数组中的位置(即下标),查不到就输出零。

具体步骤,在输入一个n时,由n控制a数组的元素个数,输入n个数,然后用冒泡法对a数组进行升序排序。

然后输入一个m,用来控制b数组的元素个数(查找次数),然后是输入m个数到b数组,接下来就是要做二分查找。

二分查找即折半查找,主要思想为:将n个元素分成个数大致相同的两半,取a[mid]与欲查找的b[i]作比较,如果b[i]< a[mid],则在a[mid]左边在进行二分查找,否则就在a[i]的右边进行查找。

如果b[i]=a[mid]则找到b[i];就.输出b[i]在数组a[i]里的下标(mid+1),并退出循环。

如果找不到(即start>end了)就输出0。

关于数组实验报告总结

关于数组实验报告总结

一、实验目的1. 熟悉数组的基本概念和操作方法。

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

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

二、实验内容本次实验主要围绕数组展开,包括以下内容:1. 数组的定义与初始化2. 数组元素的赋值与遍历3. 数组的插入与删除4. 数组的排序5. 数组的查找三、实验步骤1. 数组的定义与初始化(1)定义一个整型数组,命名为arr,大小为10。

(2)使用循环初始化数组元素,从0到9。

2. 数组元素的赋值与遍历(1)使用循环遍历数组,打印出每个元素的值。

(2)将数组的第5个元素赋值为20。

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

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

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

(2)使用选择排序算法对数组进行排序。

5. 数组的查找(1)使用线性查找算法查找数组中值为15的元素。

(2)使用二分查找算法查找数组中值为15的元素。

四、实验结果与分析1. 数组的定义与初始化实验结果:成功定义了一个大小为10的整型数组arr,并使用循环初始化了数组元素。

分析:通过定义数组并初始化,我们可以存储一组有序或无序的数据,方便后续操作。

2. 数组元素的赋值与遍历实验结果:成功遍历了数组,并修改了数组的第5个元素。

分析:通过赋值和遍历操作,我们可以对数组元素进行修改和查询,满足实际应用需求。

3. 数组的插入与删除实验结果:成功在数组中插入了一个新元素,并删除了指定位置的元素。

分析:插入和删除操作可以改变数组的大小和元素顺序,满足实际应用场景。

4. 数组的排序实验结果:使用冒泡排序和选择排序算法对数组进行了排序。

分析:排序操作可以使数组元素按照特定顺序排列,便于后续查找和操作。

5. 数组的查找实验结果:使用线性查找和二分查找算法成功找到了数组中值为15的元素。

分析:查找操作可以快速定位到指定元素的位置,提高程序效率。

五、实验总结通过本次实验,我们掌握了数组的基本概念和操作方法,包括定义、初始化、赋值、遍历、插入、删除、排序和查找等。

C语言实验五实验报告-数组

C语言实验五实验报告-数组

C语言实验五实验报告-数组C 语言实验五实验报告数组一、实验目的本次实验旨在深入理解和掌握 C 语言中数组的概念、声明、初始化以及基本操作。

通过实际编写代码,熟练运用数组解决实际问题,提高编程能力和逻辑思维能力。

二、实验环境操作系统:Windows 10开发工具:Visual Studio 2019三、实验内容1、数组的声明和初始化声明一维数组,如`int arr10;`。

初始化一维数组,包括全部初始化,如`int arr5 ={1, 2, 3, 4, 5};`,以及部分初始化,如`int arr5 ={1, 2};`。

声明二维数组,如`int arr34;`。

初始化二维数组,如`int arr23 ={{1, 2, 3},{4, 5, 6}};`。

2、数组元素的访问和操作使用下标访问数组元素,如`arr0` 。

对数组元素进行赋值和修改操作。

遍历数组,使用循环打印数组元素。

3、数组的应用实现数组元素的排序,如冒泡排序、选择排序等。

查找数组中的特定元素,如顺序查找、二分查找等。

四、实验步骤1、数组的声明和初始化打开 Visual Studio 2019,创建一个新的 C 语言项目。

在源文件中,编写以下代码来声明和初始化一维数组:```cinclude <stdioh>int main(){int arr110;int arr25 ={1, 2, 3, 4, 5};int arr35 ={1, 2};printf("未初始化的数组 arr1 的元素:\n");for (int i = 0; i < 10; i++){printf("%d ", arr1i);}printf("\n");printf("全部初始化的数组 arr2 的元素:\n");for (int i = 0; i < 5; i++){printf("%d ", arr2i);}printf("\n");printf("部分初始化的数组 arr3 的元素:\n");for (int i = 0; i < 5; i++){printf("%d ", arr3i);}printf("\n");return 0;}```编译并运行代码,观察输出结果,理解数组的声明和初始化方式。

数组实验报告范文

数组实验报告范文

数组实验报告范文实验报告标题:数组操作实验摘要:本实验通过对数组的基本操作实例进行实践,探讨了数组的定义、初始化、元素赋值、元素访问、元素修改和数组长度等操作的方法和注意事项。

1.引言数组是一种常见的数据结构,其在计算机科学和编程中有着广泛的应用。

通过对数组的操作,可以实现数组元素的存储、访问和修改等功能。

在本次实验中,我们将通过实践操作来掌握数组的基本操作方法。

2.实验目的1)掌握数组的定义和初始化方法;2)熟悉数组元素的赋值、访问和修改;3)了解数组的长度属性及其用法。

3.实验内容3.1数组的定义和初始化在编程语言中,数组的定义和初始化可以分为静态数组和动态数组两种方式。

静态数组的定义方式为:类型[数组长度] 数组名;例如:int numArr[5];静态数组的初始化方式有两种:-一种是在定义时进行初始化,即直接在数组定义中指定数组的初始值;-另一种是在定义后通过循环结构对数组进行逐元素赋值的方式进行初始化。

动态数组的定义和初始化方式与静态数组有所不同,需要调用相应的分配内存函数进行动态内存的分配。

3.2数组元素的赋值、访问和修改数组元素的赋值即将一些值赋给数组的一个或多个元素。

通过下标索引的方式可以访问和修改数组中的元素。

例如,定义了一个长度为5的整型数组numArr,可以通过numArr[0]、numArr[1]、numArr[2]、numArr[3]和numArr[4]来访问和修改数组中的元素。

3.3数组的长度属性及其用法数组的长度属性即数组的元素个数,可以通过数组的长度属性来获取数组的长度。

例如,使用int length = numArr.length;就可以获取数组numArr的长度。

4.实验步骤4.1数组的定义和初始化首先,我们定义了一个整型数组numArr,并在定义时进行了初始化。

int[] numArr = {1, 2, 3, 4, 5};然后,我们使用循环结构对数组进行逐元素赋值的方式进行初始化。

C语言上机操作指导实验五数组(1) 实验八函数(2)

C语言上机操作指导实验五数组(1) 实验八函数(2)

第 4页,共 14页
《C 程序设计》实验及课程设计项目报告
下标= a 2
0
1 8
2 16
3 14
4 1 10
5 8
6
7 16
8 4
9 20
10 6
部分源代码: k=0; if ( a[k]<a[1] ) 真 k=1; 执行 k=0; if ( a[k]<a[2] ) 假 for ( i=1; i<10; i++ ) k=2; 不执行 if ( a[k]<a[i] ) if ( a[k]<a[3] ) 真 k=i; k=3; 执行 相关知识:①删除数组元素的概念;②移动数组元素的算法;③求最大值位置的算法。 7. 以下 sy30.c 程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输 出低于平均分的学生成绩,用输入负数结束输入。请填空: #include <stdio.h> void main( ) { 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]= ; n++; scanf("%f", &a); } ave= ; printf ("Output : \n"); printf ("ave = %f\n", ave); for (i=0; i<n; i++) if ( ) printf("%f\n", x[i]); } 8.打印如下杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 编程点拨: 杨辉三角形有如下特点: 1 只有下半三角形有确定的值; 2 第一列和对角线上的元素值都是 1; 3 其它元素值均是前一行同一列元素与前一行前一列元素之和。

C语言实验报告实验五参考答案

C语言实验报告实验五参考答案

C语言实验报告实验五参考答案实验五一维数值数组(参考答案)1、设计程序sy5-1.c,计算n门课程的平均分。

例如:若有5门课程的成绩是:90.5.72.80.61.5.55,则平均分是:71.80.算法分析:先求n门课的成绩总和,(累加求和),再用累和除以课程数。

参考答案:includevoid main()double score[30]。

sum=0,aver;int n,i;printf("Inputn:");scanf("%d",&n);printf("请依次输入%d门课程的成绩",n);for(i=0;i<n;i++)scanf("%lf",&score[i]);sum=sum+score[i];aver=sum/n;printf( "\nAverage scoreis: %5.2f\n"。

aver);运行结果:2、设计步伐sy5-2.c,对输入的10个整数按倒序寄存后输出成效。

算法阐发:利用“半数交流”算法,最前面的元素和末了面的元素交流,逐步向中央挨近。

可利用两个下标变量i和XXX。

参考答案:includeint main()int a[10]={1,2,3,4,5,6,7,8,9,10};int i,j,t;for( i=0,j=9.i<j。

i++,j--)//逐一向中,交换。

直到已没有元素没交换t=a[i]。

a[i]=a[j]。

a[j]=t;}// a[i]-数组前端的数,a[j]-数组后端的数printf("交流后数组元素是:");for(i=0;i<10;i++)printf("%5d",a[i]);//%5d,5透露表现宽度printf("\n");//输出完所有的数后换行return 0;运行结果:3、设计程序sy5-3.c,输入10个整数,找出其中的最大数及其所在的下标。

数组实验实训报告

数组实验实训报告

一、实验目的本次实验旨在通过实践操作,让学生掌握数组的基本概念、定义、使用方法以及在实际编程中的应用。

通过实验,使学生能够熟练运用数组解决实际问题,提高编程能力。

二、实验内容1. 数组的定义与初始化2. 数组元素的访问与修改3. 数组元素的遍历4. 数组元素的排序5. 数组的应用实例三、实验步骤1. 数组的定义与初始化(1)定义一维数组```cint a[5];```(2)定义二维数组```cint b[3][4];```(3)初始化数组```cint c[3] = {1, 2, 3};```2. 数组元素的访问与修改```c// 访问数组元素int d = a[2];// 修改数组元素a[2] = 10;```3. 数组元素的遍历```c// 遍历一维数组for (int i = 0; i < 5; i++) {printf("%d ", a[i]);}// 遍历二维数组for (int i = 0; i < 3; i++) {for (int j = 0; j < 4; j++) { printf("%d ", b[i][j]); }printf("\n");}```4. 数组元素的排序(1)冒泡排序```cvoid 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)选择排序```cvoid selectionSort(int arr[], int n) {for (int i = 0; i < n - 1; i++) {int min_idx = i;for (int j = i + 1; j < n; j++) {if (arr[j] < arr[min_idx]) {min_idx = j;}}int temp = arr[min_idx];arr[min_idx] = arr[i];arr[i] = temp;}}```5. 数组的应用实例(1)计算数组中元素的最大值和最小值```cint max = arr[0];int min = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}if (arr[i] < min) {min = arr[i];}}```(2)计算数组中元素的平均值```cint sum = 0;for (int i = 0; i < n; i++) {sum += arr[i];}double avg = (double)sum / n;```四、实验总结通过本次实验,我们学习了数组的基本概念、定义、使用方法以及在实际编程中的应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五 数 组
[实验目的]
1、通过编程及上机调试,掌握数组类型的使用方法。

2、掌握字符数组的使用方法。

3、将数组灵活应用于程序设计中。

[实验内容与步骤]
1、计算、保存和输出Y i
Y X X i i i =+2522s i n()s i n () i=0,2,3,...,9
X i 由键盘输入。

2、某选举活动有五位候选人。

候选人按1~5编号,投票工作是在选票上方标记出某位候选 人的编号即可。

试编写一程序,使用数组变量count 保存并输出每位候选人的得票数。

如果所读取数为-1,读取选票结束;如果所读取数不在1~5的范围内,该选票被视作“废 票”, 程序应可以计算出废票数。

3、读入一串字符,以‘!’结束。

分别统计其中数字0,1,2,...,9出现的次数。

4、输入一串字符,以‘?’结束。

统计各字母出现的次数,并按字母出现的多少输出(先 输出次数多的,次数相同的按字母表顺序输出,不出现的字母不输出)。

例:输入 5B3aA+4-HDEH5DH?
输出 H 3
D 2
A 1
B 1
E 1
a 1
5、输入字符数组,剔除其中所有的字符‘c ’后再输出。

6、编写一个程序,输入两个字符串str1和str2,要求各串中无重复出现的字符,求两者的 交集。

若该交集非空,则输出结果。

7、输出下列形式的杨辉三角形的前10行
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

8、输入下述8个国家名字的字符串:CHINA 、JAPAN 、KOREA 、INDIA 、CANADA 、 AMERICA 、ENGLAND 和FRANCE ,要求将这些国名按字典顺序排序。

[习题与思考题]
1、插入排序。

以任意次序读入10个数。

将第一个数放在数组A 的第一个元素中。

以后与 已存入数组A 中的数进行比较,确定它在从小到大的排列中应处的位置。

将该位置及其
后面的元素向后推移一个位置,将新读入的数据填入空出的位置中。

这样在数组A中的数总是从小到大排列的。

10个数据处理完后输出数组A。

(其算法请参见流程图)2、有15个数存放在一个数组中,输入一个数,用折半查找法找出该数是数组中第几个元
素。

若该数不在数组中,则打印出“No found”。

3、输入3行3列的矩阵A,然后(用函数实现各小题功能)
(1)输出矩阵A。

(2)将对角线之外的上三角形中的每个元素加1,下三角形中的每个元素减1,输出矩阵A。

(3)找出现在在矩阵A中最大的元素及其行、列位置。

并输出。

(4)计算矩阵A的对角线上的元素之和。

(5)计算矩阵A的转置矩阵A T。

(要求将A转置存放)
4、计算2个矩阵a(M行P列),b(P行N列)的乘积。

5、某班学生有若干人(不超过40人),期终共考5门课,每个学生的成绩按学号顺序存
入计算机。

编程完成下列计算:
(1)求出每个学生的总分和平均分;
(2)每门课程的最高分,以及该得分学生的学号;
(3)统计各门课程成绩在60分以下学生所占的百分比。

6、编写一对函数实现互换日期表示法:nday(y,m,d)函数,将某年某月某日转换成这一年的
第几天;monday(y,n,mday)函数,将某年的第几天转换成这一年的某月某日,返回时mday[0]为月份数,mday[1]为这个月的第几天。

7、输入一字符数组,再输入一子字符数组,在前一字符数组中剔除所有的子字符数组后再
输出。

8、编程求解约瑟夫问题:M个人围成一圈,从第一个人开始报数,数到N的人出圈。


由下一个人开始报数,数到N的人出圈。

...印出依次出圈人的编号。

M值预先选定,N 值由键盘输入。

例:M=8,N=5
依次出圈的是5、2、8、7、...
插入排序流程图。

相关文档
最新文档