C语言实验五_数组

合集下载

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语言数组的理论知识和基本操作进行练习,加深了对数组的了解和掌握。

C语言数组的应用实验报告

C语言数组的应用实验报告

C语言数组的应用实验报告实验题目:C语言数组的应用一、实验目的:1.理解数组的定义和使用方法;2.学会利用数组实现基本算法;3.了解数组在实际应用中的常见场景及解决方法。

二、实验原理1.数组是一种数据结构,可以存储一组相同类型的数据;2.数组的元素可以通过索引(下标)来访问和修改;3.数组的长度必须在定义时确定,且长度不能改变。

三、实验内容本次实验共包含三个不同的实验题目,下面将逐一介绍每个实验的内容和具体步骤。

实验一:计算数组元素的和与平均值1.题目描述:编写一个程序,计算一个包含n个元素的整型数组中所有元素的和与平均值;2.实验步骤:1) 定义一个整型数组arr,并给数组赋初值;2) 声明一个整型变量sum,并将其初值设为0;3) 利用for循环遍历数组arr,将每个元素累加到sum中;4) 计算平均值avg,将sum除以数组长度;5)打印输出数组的和与平均值;6)用多组数据进行测试,验证程序的正确性。

实验二:查找数组中的最大值和最小值1.题目描述:编写一个程序,找出一个包含n个元素的整型数组中的最大值和最小值;2.实验步骤:1) 定义一个整型数组arr,并给数组赋初值;2) 声明两个整型变量max和min,并将它们的初值设为数组的第一个元素;3) 利用for循环遍历数组arr,对比每个元素与max和min的大小,更新max和min的值;4)打印输出数组的最大值和最小值;5)用多组数据进行测试,验证程序的正确性。

实验三:矩阵转置1.题目描述:编写一个程序,对给定的二维数组进行转置操作;2.实验步骤:1) 定义一个二维整型数组matrix,并给数组赋初值;2) 声明一个与matrix规模相反的二维整型数组transpose,并将其所有元素初始化为0;3) 利用嵌套for循环遍历matrix数组,将每个元素的行列进行互换,并赋值给transpose数组;4) 打印输出转置后的transpose数组;5)用多组数据进行测试,验证程序的正确性。

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 ```实验总结:通过本次实验,我深入理解了数组的原理和用法,并且掌握了数组在函数中的传递。

c语言实验五数组

c语言实验五数组

实验五数组
实验目的:
1、熟练掌握一维数组、二维数组的定义、赋值和输入输出方法;
2、熟练掌握字符数组和字符串函数的使用;
3、掌握与数组有关的常用算法(如查找、排序等)。

实验内容:
1. 实现用选择法对n个整数的排序,按从小到大的顺序。

2.有n个整数,使其前面各数顺序向后移动m(m<=n)个位置,最后的m个数变成最前面的m个数,且移动的元素之间的相对位置不变。

3. 编程实现:输入4行5列的矩阵,输出其中最大的那个元素的值,以及其所在的行号和列号。

4. 编写一个程序,将一个3*4的矩阵转置。

5. 编程实现:输入一行文字,求出其中大写字母、小写字母、空格、数字及其他字符各有
多少。

6. 编写一程序,将两个字符串连接起来,要求不用strcat函数。

7.译密码。

为使电文保密,往往按照一定规律将其转换成密码,收报人再按约定的规律将其译回原文。

一种明文向密文转换的规则是:将字母A变成F,a变成f,即变成其后的5个字母,W变成B,X变成C,Y变成D,Z变成E。

例如,”China”变成了”Hmnsf”,请编写程序实现上述的加密功能。

(很多实验内容都是书上的,请参看书上程序,但一定要自己看懂,不要只抄袭)。

c语言数组实验报告

c语言数组实验报告

c语言数组实验报告C 语言数组实验报告一、实验目的本次实验旨在深入理解和掌握 C 语言中数组的基本概念、使用方法以及常见的操作。

通过实际编程和调试,提高对数组的运用能力,为今后解决更复杂的程序设计问题打下坚实的基础。

二、实验环境操作系统:Windows 10编译器:Visual Studio 2019三、实验内容1、一维数组的定义、初始化和遍历定义一个包含整数的一维数组,如`int arr10;`使用初始化列表为数组赋值,例如`int arr5 ={1, 2, 3, 4, 5};`通过循环遍历数组,输出每个元素的值。

2、一维数组的查找和修改实现线性查找算法,在数组中查找特定的元素。

根据找到的元素位置,修改其值。

3、二维数组的定义、初始化和遍历定义二维数组,如`int arr234;`以不同的方式初始化二维数组,如按行初始化或整体初始化。

使用双重循环遍历二维数组。

4、二维数组的应用:矩阵运算实现两个矩阵的相加和相乘运算。

四、实验步骤1、一维数组的定义、初始化和遍历编写代码如下:```cinclude <stdioh>int main(){int arr10;int i;//初始化数组for (i = 0; i < 10; i++){arri = i + 1;}//遍历数组并输出for (i = 0; i < 10; i++){printf("%d ", arri);}return 0;}```编译并运行代码,观察输出结果,验证数组的初始化和遍历是否正确。

2、一维数组的查找和修改以下是实现线性查找并修改元素值的代码:```cinclude <stdioh>int main(){int arr5 ={10, 20, 30, 40, 50};int target = 30;int found = 0;int i;//查找元素for (i = 0; i < 5; i++){if (arri == target) {found = 1;break;}}if (found) {printf("找到元素%d,位于索引%d\n", target, i);arri = 100; //修改元素值} else {printf("未找到元素%d\n", target);}//输出修改后的数组for (i = 0; i < 5; i++){printf("%d ", arri);}return 0;}```运行程序,输入不同的目标值,查看查找和修改的结果。

实验五 数组实验

实验五  数组实验

实验五数组的使用一实验目的要求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个整数,要求找出最小的数和它的下标。

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

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

一、实验项目名称数组二、实验目的1.掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。

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

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

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

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

三、实验内容进行有关数组的程序设计。

具体内容: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语句。

(2)在输入/输出时进行必要的说明。

(3)对输入的2~10之间的整数(例如4)以n=4的格式输出。

C 实验五 数组的程序设计解析

C  实验五 数组的程序设计解析
}
}
}
for(i=0;i<n;i++)
{
if (i>0)
printf(" ");
printf("%d",ascanf("%d",&m);
for(i=0;i<m;i++)
{
int t,mid;
scanf("%d",&t);
int s=0,e=n-1;
while(s<=e)
2.Problem Description如果矩阵A中存在这样的一个元素A[i][j]满足下列条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。编写一个程序计算出矩阵A的马鞍点的值。
Input输入数据首先包含一个整数T,表示测试实例的个数,然后是T组测试数据。
实验名称:实验五 数组的程序设计
班级学号姓名
实验地点完成日期成绩
(一)实验目的
1.掌握一维和二维数组定义、赋值和使用方法;
2.掌握字符数组和字符串函数的用法;
3.掌握与数组有关的算法(特别是排序算法)。
(二)实验内容
1.Problem Description对于输入的n个整数,先进行升序排序,然后进行二分查找。
Output对于每组测试数据,输出马鞍点的值,若不存在鞍点,输出Impossible。(1208)
运行结果:
3.对给定的数据进行排序。每组测试数据的结构是:第一行为一个整数N(0<N<100),表示后面有N个整数(每个整数最多可达80位)需要排序输出,先按长度排(短的在前),如长度一样则按大小排(小的在前)。若遇到N等于零,则运行结束。每组结果之间留一个空行。(1154)

C语言实验报告《数组》

C语言实验报告《数组》

C语言实验报告《数组》C语言实验报告《数组》篇一:《C语言程序设计》实验报告数组《C语言程序设计》课程实验报告≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡篇二:C语言实验报告本《C语言程序设计》实验报告 201X~201X 学年第二学期专业班级姓名学号任课教师计算机教学实验中心 201X年 5 月《C语言程序设计》实验报告( 1 )学号:姓名:班级:成绩:任课教师签名:《C语言程序设计》实验报告( 2 )学号:姓名:班级:成绩:任课教师签名:篇三:C语言实验报告数组实验报告实验课程名称高级C语言程序设计实验项目名称数组年级 09 级专业数学学生姓名李军学号 0907010170 理学院实验 201X 年 4 月 22 日学生实验室守则一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。

二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。

三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。

四、实验必须服从教师的安排和指导,认真按规程操作,未经教师允许不得擅自动用仪器设备,特别是与本实验无关的仪器设备和设施,如擅自动用或违反操作规程造成损坏,应按规定赔偿,严重者给予纪律处分。

五、实验中要节约水、电、气及其它消耗材料。

六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。

七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。

仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。

八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。

C语言实验报告6《数组》

C语言实验报告6《数组》

嘉应学院计算机学院实验报告课程名称C语言程序设计实验名称数组实验地点指导老师实验时间提交时间班级姓名座号一、实验目的和要求(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法;(2)掌握字符数组和字符串函数的使用;(3)掌握与数组有关的算法(特别是排序算法)。

二、实验环境、内容和方法实验内容:(1)编一个程序,输入10个整数,统计并输出其中正数、负数和零的个数。

(2)从键盘输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数。

实验方法:(一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。

(二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。

(三)根据实验内容,编译程序。

实验环境:Windows xp Visual C++6.0三、实验过程描述(一)#include<stdio.h>void main(){int i,a[10];int q=0,w=0,e=0;printf("输入十个数字,用空格隔开\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(i=0;i<=9;i++){if(a[i]<0) w++;else if(a[i]==0) e++;else q++;}printf("正数的个数:%d,负数的个数:%d,零的个数:%d\n",q,w,e); }(二)#include<stdio.h>void main(){int i,a[5];int max,min,b;printf("输入五个数字,用空格隔开\n");for(i=0;i<5;i++)scanf("%d",&a[i]);printf("\n");max=0,min=0;for(i=0;i<4;i++){b=i+1;if(a[max]>a[b]) ;else max=b;}for(i=0;i<4;i++){b=i+1;if(a[min]<a[b]) ;else min=b;}b=a[max];a[max]=a[min];a[min]=b;for(i=0;i<5;i++)printf("%d,",a[i]);printf("\n");}四、结果分析.(一)(二)。

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;}```编译并运行代码,观察输出结果,理解数组的声明和初始化方式。

C语言数组实验报告

C语言数组实验报告

实验名:数组一、实验目的1、掌握数组定义的规则..2、掌握C语言数组的基本用法..二、实验内容一题目11、编写程序;测试下列数组的定义方式是否正确1 main{int n;scanf“%d”;&n;int an;……}2 main{const int n=10;int an;}3 include <stdio.h>define M 10main{int aM;}4 main{int a2+24;}5 include <stdio.h>define M 2define N 8main{ int aM+N;}通过这一实验;可以说明什么问题2、输入和输出信息描述及数据类型确定;1、输入数据序号输入数据描述数据类型1n;an int2nan cons tint int3aM或a10int 4a2+24int 5aM+N int 3、程序调试错误序号错误信息列出出错语句以及出错提示是否解决解决方法1-1main.c|5|error: 是将%d两边的符号改为西文字符的引expected expressionbefore '%' token|scanf“%d”;&n;号scanf"%d";&n;1-2main.c|6|warning:unused variable 'a'-Wunused-variable|int an;是将前面的n的输入去掉;把n改为具体数字5main.c|6|warning:unused variable 'a'-Wunused-variable|int aM+N;是加上个scanf“%d”;&aM+N;4、相关问题回答通过这一实验;可以说明什么问题1、2345对;1错;1中an的数组定义的里的常量表达式不能是变量..2、一维数组定义的时候里的常量表达式包括常量和符号常量;但不能是变量..二题目21、运行下面的C程序;根据运行结果;可以说明什么main{ int num5={1;2;3;4;5};inti i;fori=0;i<5;i++printf“%d”;numi;}2、输入和输出信息描述及数据类型确定;1、输入数据序号输入数据描述数据类型1num5;i int2输出数据序号输出数据描述数据类型1numi int3、程序源代码填写程序调试正确后的代码include <stdio.h>int main{int num5={1;2;3;4;5}; /定义num5/int i;fori=0;i<5;i++ /下标应该是0到4/ printf"%d";numi; /依次输出num0至num4/return 0;}4、程序调试错误序号错误信息列出出错语句以及出错提示是否解决解决方法1格式不对是2main.c|5|error: 是改为 int i;unknown type name 'inti'| inti i;3 main.c|7|error: expected expression before '%' token| printf“%d”;numi;是 将引号改为西文字符4 fori=0;i<5;i++ 是 去掉等号 5、相关问题回答 运行结果:12345根据运行结果;可以说明什么说明:数组元素的下标从0开始;比定义的时候会小一个.. 三 题目 31、操作符&用以求一个变量的地址;这在函数scanf 中已经使用过了..现在要你设计一个程序;返回一个3 5 的二维数组各元素的地址;并由此说明二维数组中各元素是按什么顺序存诸的..2、输入和输出信息描述及数据类型确定; 1、输入数据序号 输入数据描述 数据类型 1 a35;i.j int 2 adress 整型指针变量 2输出数据序号 输出数据描述 数据类型 1 adress int 3、程序源代码填写程序调试正确后的代码 include <stdio.h> int main {int a35;int adress; //定义并初始化adress int i;j;fori=0;i<3;i++ //每行循环 {printf"\n";forj=0;j<5;j++ //每列循环 {adress=&aij; //将adress 赋值为整型指针变量 printf"%d ";adress; } }return 0; }4、测试与结果分析 1、测试数据与结果 源文件名 可执行文件名 测试序号 测试用例选取原因 测试输入数据 测试输出结果 是否正确结果分析 1 无 无是 无误四 题目 4为一个起泡排序程序设计测试用例;并测试之.. 1、程序源代码填写程序调试正确后的代码 include <stdio.h> int main {int a10; //定义一维数组a10 int i;j;k;printf"请输入10个数字:\n"; fori=0;i<=9;i++scanf"%d";&ai; //依次输入数组的数字 printf"\n"; //换行forj=0;j<9;j++ //进行9次循环;实现9趟比较 fori=0;i<9-j;i++ //在每一趟中进行9-j 次比较 ifai>ai+1 //相邻两数比较 {k=ai; ai=ai+1;ai+1=k; //若后一个比前一个大;则交换位置}printf"排序后的数字为:\n"; fori=0;i<=9;i++printf"%d ";ai; //依次输出排序后的数字 printf"\n"; return 0; }2、输入和输出信息描述及数据类型确定; 1、输入数据序号 输入数据描述 数据类型 1 a10;i;j;k int 2输出数据序号 输出数据描述 数据类型 1 ai int 3、程序调试错误序号 错误信息列出出错语句以及出错提示 是否解决 解决方法 1 输出结果间无空格 是 在最后一个printf “%d ”的d 后面加空格4、测试与结果分析 1、测试数据与结果 源文件名 可执行文件名 测试序号 测试用例选取原因 测试输入数据 测试输出结果 是否正确结果分析1 测试用例 1 12 13 14 15 1 12 13 14 15 67 78 80是 无误8956 6778 8980五题目51、1983年;在ACM图林奖颁奖大会上;杰出的计算机科学家;UNIX 的鼻祖;C 语言的创始人之一;图林大奖得主;Ken Thompson 上台的第一句话是:“我是一个程序员;在我的1040表上;我自豪地写上了我的职业..作为一个程序员;我的工作就是写程序;今天我将向大家提供一个我曾经写过的最精练的程序..”这个程序如下:char s ={‘\t’;‘0’;‘\n’;‘}’;‘;’;‘\n’;‘\n’;‘/’;‘’;‘\n’;/ 213 lines deleted/};/The string is arepresentation of the bodyof this program from ‘0’to the end/main{ int i;printf“char \ts={\” };for i=0;si;i++printf“\t%d;\n”;si;printf“%s”;s;}请上机运行这个程序;指出它的功能和运行结果..2、程序源代码填写程序调试正确后的代码include<stdio.h>char s ={'\t';'0';'\n';'}';';';'\n';'\n';'/';'';'\n';/ 213 lines deleted/ 0 }; /The string is arepresentation of the body of this program from '0' to the end /int main {int i;printf"char \ts={\n" ; for i=0;si;i++printf"\t%d;\n";si; printf"%s";s; return 0; }3、程序调试错误序号 错误信息列出出错语句以及出错提示 是否解决 解决方法 1 所有的引号和逗号格式不对是 都改为西文字符2 main.c|22|error: expected '='; ';'; ';'; 'asm' or '__attribute__' before '{' token|是 在main 前加int3 main.c|23|warning: missing terminating " character enabled by default|printf"char \ts={\" };是 改为printf"char \ts={\n" ; 4 格式不完整 是 加上include;return 0; 4、相关问题回答请上机运行这个程序;指出它的功能和运行结果.. 答:功能输出字符串的数值.. 5、测试与结果分析 1、测试数据与结果 源文件名 可执行文件名 测试序号 测试用例选取原因 测试输入数据 测试输出结果 是否正确结果分析 1 测试用例是 无误六 题目 6 1、题目内容描述在下面的 5×5 魔方矩阵中;每一行、每一列、每一对角线上的元素之和都是相等的;试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中; 然后; 检验其是否为魔方矩阵;并将其按如下格式显示到屏幕上..17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 92、程序源代码填写程序调试正确后的代码include<stdio.h>main{int i;j;sum1;sum2;int find1=0;find2=0;m=0; //定义变量int a55;fori=0;i<5;i++forj=0;j<5;j++scanf"%d";&aij; //输入55个数字fori=0;i<5;i++{forj=0;j<5;j++{printf"%d";aij; //输出矩阵}printf"\n";forsum1=0;i=0;i<=4;i++ //计算对角线元素和sum1+=aii;forsum2=0;i=0;j=4;i<=4;i++;j--sum2+=+aij; //计算对角线元素和fori=0;i<=4;i++{forj=0;j<=4;j++printf"%d\t";aij; //打印魔方矩阵printf"\n";}ifsum1=sum2{printf"此矩阵不为魔方矩阵\n"; //判断对角线和是否相等m=1;}fori=0;i<=4;i++forj=0;j<=4;j++{ai5+=aij;a5j+=aij; //判断各行列和是否相等}ifm==0{fori=0;i<=4;i++{ ifai5=a5i || ai5=sum1 {printf"此矩阵不为魔方矩阵\n"; break; }} ifi==5printf"此矩阵为魔方矩阵\n"; }}3、测试与结果分析 1、测试数据与结果 源文件名 可执行文件名 测试序号测试用例选取原因 测试输入数据 测试输出结果是否正确 结果分析1 题目是无误七 题目 7 1、题目内容描述餐饮服务质量调查打分在商业和科学研究中;人们经常需要对数据进行分析并将结果以直方图的形式显示出来..例如;一个公司的主管可能需要了解一年来公司的营业状况;比较一下各月份的销售收入状况; 如果仅给出一大堆数据; 这显然太不直观了; 如果能将这些数据以条形图 直方图的形式表示;那么将会大大增加这些数据的直观性;也便于数据的分析与对比..下面以顾客对餐饮服务打分为例; 练习一下这方面的程序.. 假设现在有40个学生被邀请来给自助餐厅的食品和服务质量打分;分数为从1~10的10个等级1意味着最低分;10表示最高分;试统计调查结果;并用‘’打印出如下形式的统计结果直方图..Grade Count Histogram1 52 103 7...2、输入和输出信息描述及数据类型确定;1、输入数据序输入数据描述数据类型号1score40;i;j;grade;count11int2输出数据序输出数据描述数据类型号1grade;countgrade char3、程序源代码填写程序调试正确后的代码include <stdio.h>int main{int score40;i;j;grade;int count11={0}; //定义并初始化数组count11fori=0;i<40;i++{printf"please input score%d:";i+1;scanf"%d";&scorei; //输入每个分数switchscorei //统计每个分数的个数{case 1:count1++; break; //评分为1时;数组中count1加一case 2:count2++; break; //评分为2时;数组中count2加二case 3:count3++; break; case 4:count4++; break; case 5:count5++; break; case 6:count6++; break; case 7:count7++; break; case 8:count8++; break; case 9:count9++; break; case 10:count10++; break;default:printf"Input error\n"; //其余情况 } }printf"Grade\tCount\tHistogram\n"; //输出表头forgrade=1;grade<=10;grade++ //统计每个分数的个数 {printf"%d\t%d\t";grade;countgrade; //输出分数和每个分数的个数forj=0;j<countgrade;j++printf"%c";''; //根据评分的个数输出数printf"\n"; }return 0; }4、测试与结果分析 1、测试数据与结果 测试序号 测试用例选取原因 测试输入数据 测试输出结果 是否正确 结果分析 1 测试用例 8个2;9个3;5个4;13个6;3个7;23;76如下图 是 无误2 测试用例 2个1;4个2;3个3;1个4;5个5;6个6;5个7;2个8;6个9;3个10;78;0;22如下图 是 无误八 题目 8 1、题目内容描述由计算机随机生成一个各位相异的4位数字;由人来猜;每次提示:xAxB A 前面的数字表示有几个数字猜对位置也对了 B 前面的数字表示有几个数字猜对但位置不对提示:用数组a存计算机随机生成的4位数;用数组b存人猜的4位数;对a和b的相同位置的元素进行比较;得到A前面的数字;对a和b的不同位置的元素进行比较;得到B前面的数字..2、输入和输出信息描述及数据类型确定;1、输入数据序输入数据描述数据类型号1a4;b4;m;n;i;j;int2输出数据序输出数据描述数据类型号1M;n int3、程序源代码填写程序调试正确后的代码include<stdio.h>include<stdlib.h>include<time.h>int main{int i;j;m;n;int a4;b4;m=0;n=0;srandtimeNULL; //产生随机数ifa0=a1&&a0=a2&&a0=a3&&a1=a2&&a1=a3&&a2=a3{fori=0;i<4;i++{ai=rand%10;printf"%d ";ai; //输出不同的四个个位数 }printf"\n";whilem=4 //当m不等于4的时候循环{printf"请输入你猜想的数字:\n";forj=0;j<4;j++scanf"%d";&bj;printf"\n";fori=0;i<4;i++{ifai==bi{m++; //位置和数字都对}}fori=0;i<4;i++{forj=0;j<4;j++ {ifai==bj&&i=j //位置不对但数字对 {n++; } } }printf"%d A %d B\n";m;n; }printf"你答对了\n"; //m=4时输出}return 0; }3、测试与结果分析 1、测试数据与结果 源文件名 可执行文件名 测试序号 测试用例选取原因 测试输入数据 测试输出结果 是否正确结果分析 1 测试用例是 无误。

c语言 数组 实验报告

c语言 数组 实验报告

c语言数组实验报告
《C语言数组实验报告》
摘要:
本实验旨在通过C语言编程实现数组的基本操作,包括数组的初始化、赋值、遍历和排序等。

通过实验,我们深入了解了数组在C语言中的使用方法,加深了对数组概念和操作的理解。

一、实验目的
1. 理解C语言数组的概念和基本操作;
2. 掌握数组的初始化、赋值、遍历和排序等操作;
3. 提高对C语言的编程能力。

二、实验内容
1. 数组的定义和初始化;
2. 数组元素的赋值和访问;
3. 数组的遍历;
4. 数组的排序。

三、实验步骤
1. 定义一个整型数组并初始化;
2. 使用循环结构给数组元素赋值;
3. 编写循环结构实现数组的遍历;
4. 使用排序算法对数组进行排序。

四、实验结果
1. 成功定义并初始化了一个包含10个元素的整型数组;
2. 使用循环结构成功给数组元素赋值,并能正确访问数组元素;
3. 编写的遍历代码能够正确输出数组中的所有元素;
4. 使用冒泡排序算法对数组进行了排序,得到了正确的结果。

五、实验总结
通过本次实验,我们加深了对C语言数组的理解,掌握了数组的基本操作方法,并且在实践中提高了编程能力。

数组在C语言中是一种非常重要的数据结构,
对于日后的编程工作具有重要的参考价值。

希望通过实验的学习,能够更加熟
练地运用数组进行编程,为以后的学习和工作打下坚实的基础。

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语⾔实验报告(数组)C程序设计实验报告实验项⽬:7.3.1练习1 冒泡排序法7.3.1练习2 选择排序法7.3.2练习1 杨辉三⾓(等腰)7.3.2练习2 给定年⽉⽇,将其转换成这⼀年的第⼏天输出7.3.3 判断回⽂数姓名:熊晓东实验地点:家实验时间:2020.5.24⼀、实验⽬的与要求1、掌握⼀维和多维数组的定义和数组元素的引⽤⽅法。

2、了解⼀维和多维数组初始化的⽅法。

3、学习⼀维和多维数组的基本算法。

4、掌握字符数组的定义、初始化⽅法及其元素的引⽤⽅法。

5、掌握C语⾔提供的对字符串进⾏处理的基本库函数。

⼆、实验内容1、实验练习:1问题的简单描述:⽤冒泡排序法实现,对⽤随机函数产⽣的10个整数按升序排列。

2实验代码:···#include<stdio.h>#include<stdlib.h>#include<time.h>void sort1(int s[],int n){int i,j;int temp;for(i=9;i>0;i++);for(j=0;j<i;j++)if(s[j]>s[j+1]){temp=s[j];s[j]=s[j+1];s[j+1]=temp;}}main(){int i,a[10];srand((unsigned int )time(NULL));printf("随机六⽣10个整数: \n");for(i=0;i<10;i++)a[i] =rand()%100;for(i=0;i<10;i++)printf("%d ",a[i]);printf("ln");sort1(a,10);printf("输出排序后的10个整数\n");for(i=0;i<10;i++)printf("%d ",a[i]);}3问题分析:⽆2、实验练习:1问题的简单描述:⽤选择排序法实现,对⽤随机函数产⽣的10个整数按升序排列。

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个整数,找出其中的最大数及其所在的下标。

厦门理工学院+C语言+实验5_数组

厦门理工学院+C语言+实验5_数组

《C语言程序设计》实验报告实验序号:5 实验项目:数组学号姓名Debug 专业、班级实验地点指导教师实验时间一、实验目的及要求1、掌握一维数组和二维数组的定义、赋值、使用和输入输出方法;2、掌握字符数组和字符串的使用;二、实验设备(环境)及要求使用Visual C++ 6.0;windows系列操作系统的环境。

三、实验内容与步骤1.用筛法求1~1000之间的素数。

eratosthenes筛法:1)利用数组存放这1000个数;2)挖掉第一个数1(令该数=0);3)2没被挖掉,挖掉后面所有2的倍数;4)3没被挖掉,挖掉后面所有3的倍数;5)4被挖掉,不执行任何操作;6)5没被挖掉,挖掉后面所有5的倍数;7)····直到最后一个数;8)剩下的非0数就是素数。

运行结构截图:2.编写程序输入一个字符串,删除字符串中的所有数字字符后输出此字符串。

【算法提示】(1)定义一个一维字符数组;(2)输入一串测试字符;(3)依次判断数组中字符是否为数字(即>‘0’且<‘9’);(4)若是则将后面所有字符依次往前移一位;(5)输出整个字符串。

运行结构截图:3.输入若干个整数存放在一维数组中,根据此数组构造两个数组a和b,要求a中存放数组x中所有的正数,b中存放数组中所有的负数,0舍弃,最后分别输出数组a和b 。

运行结构截图:4.10个小孩围成一圈分糖,老师分给第1个孩子10块,第2个孩子2块,第3个孩子8块,第4个孩子22块,第5个孩子16块,第6个孩子4块,第7个孩子10块,第8个孩子6块,第9个孩子14块,第10个孩子20块,然后所有的小孩同时将自己手中的糖分一半给右边的小孩,糖块数为奇数的人可向老师再要一块。

问经过这样几次调整后大家手中的糖的块数都一样?每人各有多少块糖。

(注:第i个小朋友的右边是第i-1个小朋友,第1个小朋友的右边是第10个小朋友)运行结构截图:5.假设在2*10的二维数组中存放了数据,其中各行的元素构成一个整数,如第一行元素构成整数1234507000。

C语言实验程序、总结 实验五 数组

C语言实验程序、总结  实验五  数组

实验五数组一实验目的1 掌握一维数组和二维数组的定义、赋值和输入输出的方法;2 掌握字符数组和字符串函数的使用;3 掌握与数组有关的算法(特别是排序算法)二实验内容1 程序功能:输入12个整数,按每行3个数输出,最后输出它们的平均值。

#include <stdio.h>#define N 12main(){ int i,a[N],av;for(i=0;i<N;i++) scanf("%d",a[i]);for(i=0;i<N;i++){ printf("%d",a[i]);if(i%3==0) printf("\n");}for(i=0;i<N;i++) av+=a[i];printf("av=%f\N",av);}上面给出的程序有错误,请改正并运行,记录输出结果。

【提示】请注意输入提示、变量赋初值、循环结束条件、输出格式等问题。

修改正确的程序如下:#include<stdio.h>#define N 12main(){ int i,a[N],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];printf("av=%d\n",av/N);}运行结果如下图:2 选择排序(升序):最常用的排序方法除了冒泡排序外,还有选择排序。

【算法】n个数的选择排序的算法:⑴定义变量、输入n及数组a各元素⑵n个数排序要进行n-1遍以下是一遍排序(第i遍)的方法:①设最小数的下标k=i,则最小数为a[k]②从下标j=i+1的元素起,到最后一个元素(j=n-1),将a[j]与最小数a[k]比较,确定最小数的下标k③交换a[i]与最小数a[k]⑶输出已排序的n个数请根据上面的算法编写选择排序程序,并编辑运行、记录输入输出数据。

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

实验(实训)报告项目名称实验五数组所属课程名称 C 语言程序设计项目类型验证性实验(实训)日期2011/11.16/11.23/11.30班级10统计2学号100112100236姓名裴晓晓指导教师刘亚楠浙江财经学院教务处制一、实验(实训)概述:【实验目的】1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。

2. 掌握字符数组和字符串函数的使用。

3. 掌握与数组有关的算法(特别是排序算法)。

【实验要求】1.选择合适的数据类型表达应用要求;2.正确运用循环结构处理数组问题;3.输入和输出格式清晰,有提示信息。

能对输入数据进行基本的合理性判断。

【基本原理】见第五章课件和课本内容【实施环境】(使用的材料、设备、软件)Visual C++ 6.0二、实验(实训)内容:第1题【项目内容】完成课后第3题。

求一个3×3矩阵对角线元素之和。

【方案设计】提示:请在此粘贴你的完整程序。

□#include <iostream>using namespace std;int main(){int a[3][3];int i,j,sum;sum=0;for(i=0;i<3;i++)for(j=0;j<3;j++){cin>>a[i][j];if(i==j)sum=sum+a[i][j];}cout<<"sum="<<sum<<endl;return 0;}【实验(实训)过程】(步骤、记录、数据、程序等)【结论】(结果、分析)提示:请记录该程序的运行过程:输入输出。

比如:123 456↙(↙表示输入,如果没有输入,则没有这一行)a+b=579 (输出)并尽可能对程序的执行结果进行分析。

□4 55 62 34 723 5 66sum=104第2题【项目内容】完成课后第4题。

提示:自定义数组a的大小和内容。

插入一个数number到已排好的数组中,可以有以下两种方法:(1)先从数组前面开始比较number和数组元素a[i]的大小,直到找到待插入的正确位置(即a[i-1]<number<a[i]),接着把这个位置上和以后位置上的数组元素向后移动,空出待插入元素的位置,然后插入。

(2)或者先把待插入的数放在数组的最后,然后再对数组元素的次序逐步调整以到达有序的状态。

【方案设计】提示:请在此粘贴你的完整程序。

□#include <iostream>using namespace std;int main(){int a[11]={2,5,8,17,28,39,58,89,100,298},n,i,j;cout<<"a[i]="<<endl;for (i=0;i<10;i++)cout<<a[i]<<" ";cout<<endl;cout<<"n="<<endl;cin>>n;if(n>a[9])a[10]=n;else{for(i=0;i<10;i++){if(n<a[i]){for (j=9;j>=i;j--)a[j+1]=a[j];a[i]=n;break;}}}cout<<"the new order:"<<endl;for(i=0;i<11;i++)cout<<a[i]<<" ";cout<<endl;return 0;}【实验(实训)过程】(步骤、记录、数据、程序等)【结论】(结果、分析)提示:请记录该程序的运行过程:输入输出。

比如:123 456↙(↙表示输入,如果没有输入,则没有这一行)a+b=579 (输出)并尽可能对程序的执行结果进行分析。

□a[i]=2 5 8 17 28 39 58 89 100 298n=56the new order:2 5 8 17 28 39 56 58 89 100 298第3题【项目内容】完成课后第5题。

提示:注意程序的通用性,即考虑数组元素个数为奇数或偶数两种情况下,都可以实现。

【方案设计】提示:请在此粘贴你的完整程序。

□#include <iostream>using namespace std;int main(){const int n=6;int m,i,j,a[n];cout<<"the origial array:";cout<<endl;for(i=0;i<n;i++)cin>>a[i];cout<<endl;for(i=0;i<n/2;i++)for(j=7;j>n/2;j--)if(i+j==n-1){m=a[i];a[i]=a[j];a[j]=m;}cout<<endl<<"the sorted array:"<<endl;for(i=0;i<n;i++)cout<<a[i]<<" ";cout<<endl;return 0;}【实验(实训)过程】(步骤、记录、数据、程序等)提示:请如实记录你在实验过程中出现的错误(如发现错误无法解决,请举手)。

□回答:【结论】(结果、分析)提示:请记录该程序的运行过程:输入输出。

比如:123 456↙(↙表示输入,如果没有输入,则没有这一行)a+b=579 (输出)并尽可能对程序的执行结果进行分析。

□the origial array:14 8 9 78 4 2the sorted array:2 4 9 78 8 14第4题【项目内容】完成课后第6题。

提示:杨辉三角形是(a+b)n展开后各项的系数。

例如:(a+b)0展开后为 1 系数为1(a+b)1展开后为a+b 系数为1,1(a+b)2展开后为a2+2ab+b2系数为1,2,1(a+b)3展开后为a3+3a2b+3ab2+b3系数为1,3,3,1(a+b)4展开后为a4+4a3b+6a2b2+4ab3+b4系数为1,4,6,4,1以上就是杨辉三角形的前5行。

第n行的系数个数为n,各行的系数有以下规律:(1) 各行第一个数都是1。

(2) 各行最后一个数都是1。

(3) 从第三行起,除上面指出的第一个数和最后一个数外,其余各数是上一行中的同列和前一列两个数之和。

算法如下:(1) 使二维数组a第1列和对角线元素的值为1。

(2) 数组其它各元素的值为a[i][j]=a[i-1][j-1]+a[i-1][j]。

(3) 输出数组各元素的值。

【方案设计】提示:请在此粘贴你的完整程序。

□#include <iostream>#include <iomanip>using namespace std;int main(){int i,j,a[11][11];for(i=1;i<11;i++){for(j=1;j<=i;j++)if(j==1)a[i][j]=1;elseif(j==i)a[i][j]=1;elsea[i][j]=a[i-1][j-1]+a[i-1][j];}cout<<"杨辉三角:"<<endl;for(i=1;i<11;i++){for(j=1;j<=i;j++)cout<<a[i][j]<<" ";cout<<('\n')<<endl;}return 0;}【实验(实训)过程】(步骤、记录、数据、程序等)提示:请如实记录你在实验过程中出现的错误(如发现错误无法解决,请举手)。

□回答:【结论】(结果、分析)提示:请记录该程序的运行过程:输入输出。

比如:123 456↙(↙表示输入,如果没有输入,则没有这一行)a+b=579 (输出)并尽可能对程序的执行结果进行分析。

□杨辉三角:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 11 9 36 84 126 126 84 36 9 1Press any key to continue第5题【项目内容】完成课后第8题。

提示:假定有n个不同的整数n>=1,且它们已经排序并且存放在数组list中,即list[0]<=list[1]<=……<=list[n-1]。

要求判定某个整数searchnum是否在数组list中,如果在数组中,则返回下标i,使list[i]=searchnum。

如果不在数组list中,就返回-1。

如果此数组已经被排序,则可以采用如下折半查找法(binary search)来查找。

设两个变量left和right分别表示被查找表的左边界和右边界,初始化时,left=0,right=n-1。

令middle=(left+right)/2为list的中间位置。

如果将list[middle]与searchnum进行比较,则会出现下列三种情况:(1)searchnum<list[middle]。

此时,如果searchnum在数组中,则其一定在0到middle-1之间。

因此,把查找右边界right设置为middle-1。

(2)searchnum=list[middle]。

此时,返回middle。

(3)searchmun>list[middle]。

此时,如果searchnum在数组中,则其一定在middle+1到n-1之间,因此,把查找左边界left设定为middle+1。

如果没有找到searchnum,且数组中还有没检查过的数,那么就重新计算middle 值,并继续查找。

【方案设计】提示:请在此粘贴你的完整程序。

□【实验(实训)过程】(步骤、记录、数据、程序等)提示:请如实记录你在实验过程中出现的错误(如发现错误无法解决,请举手)。

□回答:【结论】(结果、分析)提示:请记录该程序的运行过程:输入输出。

比如:123 456↙(↙表示输入,如果没有输入,则没有这一行)a+b=579 (输出)并尽可能对程序的执行结果进行分析。

□第6题【项目内容】完成课后第10题。

【方案设计】提示:请在此粘贴你的完整程序。

相关文档
最新文档