文档库 最新最全的文档下载
当前位置:文档库 › 实验6 一维数组和二维数组

实验6 一维数组和二维数组

实验6  一维数组和二维数组
实验6  一维数组和二维数组

1.已知一个数组有10个元素,值分别是3,6,8,4,5,66,80,72,69,70。编程,将数组元素逆置输出。

#include

main()

{

int t,i,b[10]={3,6,8,4,5,66,80,72,69,70};

for (i=0;i<=4;i++)

{ t=b[i];

b[i]=b[9-i];

b[9-i]=t;

t=0;} for (i=0;i<=9;i++)

{ printf("%d ",b[i]);} printf("\n"); } 编程求Fibonacci 数列的前30项,其数列的定义为fn =

要求数列中的值放在数组中,并按每行5个数的格式输出该数列。

#include

main()

{

int a[30],i,j,t;

a[0]=a[1]=1;

for (i=2;i<30;i++)

a[i]=a[i-1]+a[i-2];

i=0;

for (j=1;j<=6;j++)

{

for (t=0;t<5;t++)

{ printf("%d\t",a[i]);

i++;}

printf("\n");} 输入一个4行4列的二维数组,统计偶数的个数,并输出所有小于5的数。

main()

{

int a[4][4]={{2,6,7,9},{3,5,4,11},{12,8,1,13},{21,33,64,25}},i,j,m;

m=0;

for (i=0;i<4;i++)

1 (n=2) 1 (n=1)

printf("%3d",a[i][j]);}

printf("\n");

printf("??êy??êy?a:%d\n",m); }

已知一个二维数组:{{14,26,18,17},{24,37,21,8},{19,31,22,16},{7,19,14,26}},编 #include

main()

{

int

m=a[0][0];

for (i=0;i<4;i++)

for (j=0;j<4;j++)

if (m>a[i][j])

{ m=a[i][j];

x=i;

y=j; }

printf("DD??±êó?áD??±ê·?±e?a£o%d %d\n",x,y);

for (i=0;i<4;i++)

sum=sum+a[i][i];

printf("?÷???????a????oí?a£o%d\n",sum);

}

实验4 数组答案

实验四数组 实验课程名: 高级语言程序设计4 数组 专业班级:学号:姓名: 实验时间:2016年4月27日实验地点:K4 指导教师: 一、实验目的及要求 1.掌握一维数组与二维数组的定义、赋值与输入输出的方法; 2.掌握字符数组与字符串函数的使用; 3.掌握与数组有关的算法(特别就是排序算法)。 二、实验任务: (一)(1)程序代码:#include #define N 10 void main( ) { int i,a[N]; float av=0; for(i=0;i

(3)结果分析:当i能被3整除时,就换一次行。 (二)实验任务2 (1)程序代码:#include void main( ) { int i,a[5],sum=0; for(i=0;i<=4;i++) scanf("%d",&a[i]); for(i=0;i<=4;i++) sum+=a[i]; printf("sum=%d\n",sum); } (2)程序运行结果: (3)程序分析:使用for循环依次输入5个数,并使5个数相加。 (三)实验任务3 (1)程序代码:#include int main( ) { int i,j,row=0,colum=0,max; int a[3][4] = {{1,2,3,4}, {9,8,7,6}, {-10,10,-5,2}}; max=a[0][0]; for(i=0;i<=2;i++) for (j=0;j<=3;j++) if(a[i][j]>max) {max=a[i][j]; row=i; colum=j; } printf(" Max=%d, Row=%d, Colum=%d\n", max, row, colum); return 0; }

JAVA一维数组二维数组运用的例子

题目:定义一个一维数组存储10个学生名字;定义一个二维数组存储这10个学生的6门课(C程序设计、物理、英语、高数、体育、政治)的成绩; 程序应具有下列功能: (1)按名字查询某位同学成绩 (2)查询某个科目不及格的人数,及学生名单 代码如下: import java.util.*; public class Test{ public static void main(String[]args){ Scanner input=new Scanner(System.in); String[]name={"a","b","c","d","e","f","g","h","i","l"};//存储学生的名字 int[][] grade={{50,60,70,80,90,10},{40,90,80,60,40,70},{60,80,70,60,40,90},{50,60,70,80,90,10}, {60,80,70,60,40,90},{60,70,80,90,70,70},{60,80,70,60,40,90},{60,80,70,60,40,90},{70, 80,90,70,70,70},{60,80,70,60,40,90}};//存储学生各科成绩 System.out.println("输入要查询成绩的学生名字:"); String chioce=input.nextLine(); for(int i=0;i<10;i++) { if(name[i].equals(chioce)) {System.out.println("学生:"+name[i]+"的成绩如下:"); System.out.println("C程序设计:"+grade[i][0]+"物理:"+grade[i][1]+"英 语:"+grade[i][2]+"高数:"+grade[i][3]+"体育:"+grade[i][4]+"政治:"+grade[i][5]+"\n"); break;} } System.out.println("******************************************************");

实验六 一维数组程序设计

实验六一维数组程序设计 一、实验学时 2学时 二、实验目的 (一)掌握一维数组的定义、初始化方法; (二)掌握一维数组中数据的输入和输出方法; (三)掌握与一维数组有关的程序和算法; (四)了解用数组处理大量数据时的优越性。 三、预习要求 (一)理解数组的概念、利用数组存放数据有何特点; (二)一维数组的定义、初始化方法; (三)一维数组中数据的输入和输出方法。 四、实验内容 (一)下面的几个程序都能为数组元素赋值,请输入程序并运行。比较一下这些赋值方法的异同。 1.在定义数组的同时对数组初始化。 /* c6-1.c */ /*在定义数组的同时对数组初始化*/ #include "stdio.h" void main( ) { int a[4]={0,1,2,3}; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 2.不使用循环对单个数组元素赋值。 /* c6-2.c */ /*不使用循环对单个数组元素赋值*/ #include "stdio.h" void main( ) { int a[4]; a[0]=2;a[1]=4;a[2]=6;a[3]=8; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 3.用循环结构,从键盘输入为每个数组元素赋值,输出各数组元素。 /* c6-3.c */ /*利用循环通过键盘对数组元素赋值*/ #include "stdio.h" void main( ) { int i,a[4]; for(i=0; i<4; i++) scanf("%d",&a[i]); printf("\n");

数组及其应用(详细教案)

提问:给一组数排序,这组数该如何存 放呢? 8 2 9 4 5 6 3 7 1 6 这就是本节课要解决的问题。 ?一个班学生的学习成绩 ?一行文字 ?一个矩阵 这些数据的特点是: 1.具有相同的数据类型 2.使用过程中需要保留原始数据 C语言为这些数据,提供了一种型:数组。所谓数组就是一组具有相数据的有序集合。 提出学习要求: 1 一维数组的定义和应用

2 二维数组的定义和应用 3 字符数组的应用 第七章数组 7.1一维数组及应用 7.1.1一维数组的定义方式 在C语言中使用数组必须先定义、后使用,定义数组也就确定了数组的首地址、数组元素的类型和个数(数组长度)。 一维数组的定义方式为: 类型说明符数组名[常量表达式]; 例如: 1) int a[5]; 说明整型数组a,a是数组名,有5个元素。但

是其下标从0开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。注意不能使用数组元素a[5]。 float b[10],c[20]; 说明实型数组b,b是数组名,有10个元素,实型数组c,有20个元素。 char ch[20]; 说明字符数组ch,有20个元素。 对于数组类型说明应注意以下几点:2) 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 3) 数组名的书写规则应符合标识符的书写规定。 4) 数组名不能与其它变量名相同。 例如:

main() { int a; /*a为整型变量*/ float a[10]; /* 数组名a与上面的变量名a相同,错误!*/ …… } 是错误的。 5) 不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。 例如: #define FD 5 /* FD是符号常数*/ main() {

- 串数组树作业(参考答案)

第四-六章串、数组、树作业 一、判断正误:(每小题1分,共5分) 正确在()内打√,否则打×。 1.(√)子串是主串中任意个连续字符组成的序列。 2.(×)线性结构只能用顺序结构存放,非线性结构只能用链表存放。 3.(√)完全二叉树的某结点若无左孩子,则它必是叶结点。 4.(√)二叉树有五种基本形态。 5. (√)由树的中序表示和前序表示可以导出树的后序表示。 6. (√)将一棵树转换为二叉树表示后,该二叉树的根结点没有右子树。 7. (√)采用二叉树来表示树时,树的先根次序遍历结果与其对应的二叉树的前序遍历结果是一样的。 8. (×)在Huffman树中,权值较大的叶子结点离根较远。 9. (×)用一维数组存储二叉树时,是以先根遍历的次序存储结点。 二、填空题 1.已知二维数组A[0..10][0..20]采用行序为主方式存储,每个元素占2个存储单元, 并且A[0][0]的存储地址是1024, 则A[6][18]的地址是1312(1024+2*(6*21+18))。 2. 深度为5的二叉树最多有_____31___个结点(根结点层数为1)。 3.高度为h的完全二叉树最少有2h-1个结点。 4. 二叉树的先序遍历序列为:EFHIGJK,中序遍历序列为:HFIEJKG,则该二叉树根的右子树的根是:G。 5. N个结点的二叉树,采用二叉链表存放,空链域的个数为N+1。 6. 填空完成下面中序遍历二叉树的非递归算法: void InOrder(BiTree root) { InitStack ( &S ); p = ____root_____ ; while ( _____p________ || ! IsEmpty(S)) { while (p!=NULL) { Push(&S, __p___ ) ; p = _____p->lchild_________ ; } if ( ____! IsEmpty(S)___________ ) { Pop(&S, __p_____ ) ; Visit ( p -> data ); p = ___p->rchild____________ ; } } } 三、选择题 1.表达式a*(b?c)+d的后缀表达式是( B)。 A)abcd*?+ B)abc?*d+ C)abc*?d+ D)+?*abcd 2.对于有N个结点高度为K的满二叉树(结点编号为1到N,根结点的层数为1),其第K 层上最后1个结点的编号为 ( D )。 A)2K B)2K?1 C)B)2K?1?1 D)2K?1 3.将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点 进行编号,根结点编号为1,则编号最大的非叶结点的编号为:( C ) 。 A)48 B)49 C)50 D)51 4.在下列存储形式中,哪一个不是树的存储形式?( D ) 。 A)双亲表示法 B)孩子链表表示法 C)孩子兄弟表示法 D)顺序存储表示法

thinkphp将二维数组转换为一维数组

thinkphp将二维数组变为标签适用的一维数组 2012-01-10 11:23:31| 分类:默认分类|字号订阅 方法一: $projectList=arr1tag($projectList,array('','请选择'),'project_name'); //其中$list为传值过来的二维数组,$default为默认值,$k为指定的表字段function arr1tag($list,$default='',$k=''){ $tmp=''; if(array($list)){ if(array($default)){ $tmp[$default[0]]=$default[1]; } foreach ($list as $k1=>$v1){ $tmp[$k1+1]=$v1[$k]; } } return $tmp; } 方法二: $projectList=arr2tag($projectList,array('','请选择'),''); //根据数组下标获取对应值 function array_index2val($array,$index=0){ $value=''; if(is_array($array)){ $i=0; foreach($array as $val){

if($i===$index){ $value=$val; break; } $i++; } } return $value; } //把数据库中调出的数组转换成可以使用模版标签的数组,其中$default为默认值,$k为指定的表字段 function arr2tag($arr,$default=NULL,$K=NULL){ $tmp=''; if(is_array($arr)){ if(is_array($default)){ $tmp[$default[0]]=$default[1]; if($type==1){ $tmp[$default[2]]=$default[3]; } } foreach ($arr as $key=>$val){ if(is_array($K)){ $tmp[$val[$K[0]]]=$val[$K[1]]; }else{ $tmp[array_index2val($val,0)]=array_index2val($val,1); } } } return $tmp; } 方法三: 将读取数据库的内容直接转换为一维数组,该方法大多用于select标签 $this->where($where)->getField('id,name'); 得出的内容为 array(

c语言程序设计 一维数组实验

程序填空: 1、将数组a中所有偶数删除,把奇数按原顺序依次存放到a[0]、a[1]、a[2]、……、中。例如:若a数组中的数据最初排列为:9、1、4、 2、 3、6、5、8、7,删除偶数后a数组中的数据为:9、1、3、5、7。 #include main() { int a[9]={9,1,4,2,3,6,5,8,7},i,k=0; for(i=0;i<9;i++) if(__【1】__) a[k++]=a[i]; for(i=k;i<9;i++) a[i]=0; for(i=0;__【2】__;i++) printf("%4d",a[i]); printf("\n"); } 2、将所有大于1小于整数m的非素数存入数组a中。例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。 #include #define N 100 main() { int a[N],i,j,k=0,m; __【1】__ for(i=2;i #define N 20 main() { int fibonaci[N],i; for(i=0;i

vb中一维二维数组应用

一维数组 排序 一、选择排序法: 数据已经放在一维数组中,要求从小到大排序。 数组 20 4 36 …… 45 109 3 下标 1 2 3 …… n-2 n-1 n 排序过程: 1、从第1项到第n项选择最小值,然后将第1项与最小项交换。 2、从第2项到第n项选择最小值,然后将第2项与最小项交换。 3、…… 4、从第n-1项到第n项选择最小值,然后将第n-1项与最小项交换。注意:最小值及下标由临时变量存储。 所以,需要两层循环:外层循环i执行n-1次,内层循环j执行n-i-1次For i=1 to n-1

最小值及下标由临时变量存储 tmpVal=第i项值 tmpId=第i项下标 For j=i+1 to n 若tmpVal >第j项值,则: tmpVal=第j项值 tmpId=第j项下标 next 将第i项与最小项交换 Next 从大到小呢? 二、冒泡排序法: 数据已经放在一维数组中,要求从小到大排序。 数组 20 4 36 …… 45 109 3 下标 1 2 3 …… n-2 n-1 n

两种方法:小数上浮和大数下沉。 小数上浮排序过程:从第n项到第k项,依次相临两项比较,若第m项小于第m-1项,则两项交换。(k从2到n) 第1次执行:结果是第1项至第n项中的最小值放到第1项中 1、若第n项小于第n-1项,将第n项与第n-1项交换。 2、若第n-1项小于第n-2项,将第n-1项与第n-2项交换。 3、…… 4、若第2项小于第1项,将第2项与第1项交换。 第2次执行:结果是第2项至第n项中的最小值放到第2项中 1、若第n项小于第n-1项,将第n项与第n-1项交换。 2、若第n-1项小于第n-2项,将第n-1项与第n-2项交换。 3、…… 4、若第3项小于第2项,将第3项与第2项交换。 …… 第n-1次执行: 1、若第n项小于第n-1项,将第n项与第n-1项交换。 所以,需要两层循环:外层循环i执行n-1次,内层循环j执行n-i次 For i=1 to n-1 For j=n to i+1 step -1 若第j项值<第j-1项值,则:

C语言一维数组教案

学科:计算机科学与技术 课程:C语言程序设计 课题:一维数组 课时:2 教学目标:1、掌握一维数组的定义和引用 2、掌握一维数组的初始化方法 3、了解与一维数组有关的应用编程方法 教学重点:一维数组的定义和引用、初始化方法 教学难点:与一维数组有关的应用编程方法 教学方法:举例法,引导法 教学步骤:1、通过一个例子提出问题来引出本节课的知识点 2、讲授一维数组的定义和引用、初始化方法 3、示例训练 4、进行本节课的总结及作业布置 教具:黑板计算机投影仪 教学过程: 一、导入: 提问:保存一个班50位同学的一门功课的成绩,并且找出最高分和最低分,应如何实现? 解题思路:定义50个变量,从键盘中输入值,然后再相互比较。处理起来很复杂,是

否有更简便的方法?引出本节课的知识点-----数组。 二、讲授: 1、数组概述: ·数组:是数目固定,类型相同的若干个变量的有序集合,用数组名标识。 序:是数组元素之间的位置关系,不是元素值的大小顺序。 数组名:是用于区别其它数组及变量的。 ·数组元素:集合中的变量,属同一数据类型,用数组名和下标确定。 下标:是数组元素在数组中的位置。 ·数组的维数:数组名后所跟下标的个数。 2、一维数组的定义 一维数组是指由一个下标数组元素组成的数组。其定义形式为: 存储类型数据类型数组名[常量表达式] 例如:static int score[50]; 它表示定义了一个名为score的数组,该数组有50个元素,其存储类型为静态型,数据类型为整型。 说明: (1)存储类型为任选项,可以是auto、static、extern存储类型,但是没有register 型。 (2)数据类型是用来说明数组元素的类型:int , char , float。 (3)数组名的命名应遵守标识符的命名规则,但是不能与其他变量同名。

实验七 一维数组的应用

实验七一维数组的应用 实验时间:2010年11月19日 【实验目的】 1、掌握一维数组的定义、赋值和输入、输出的方法; 2、能用循环处理数组,用数组存储数据; 3、掌握与数组应用有关的算法(例如求最大值、最小值算法,冒泡法排序算法、选择法排序算法等)。 【实验内容】 1、一维数组的定义、赋值、输入和输出; 2、用循环处理数组,数组元素的引用; 3、数组的应用:求最大值、最小值问题,冒泡法排序,选择法排序。 【实验步骤】 一、在E或F盘上建立以自己的学号命名的文件夹。 二、上机验证题 1、分析以下程序,写出运行结果。 /* 文件名:ex7_1.c */ #include #define N 10 main ( ) { int k; float a[N],av,s; s=0.0; printf("请输入10个数:\n"); for (k=0; kav) printf("%.0f\t",a[k]); } 2、分析以下程序,写出运行结果 /* 文件名:ex7_2.c */ #include main ( ) {

int a[10],i,max,min,maxpos,minpos; printf("请输入10个整数:\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } max=min=a[0]; maxpos=minpos=0; for(i=0;i<10;i++) { if(maxa[i]) { min=a[i]; minpos=i+1; } } printf("max=%d,pos=%d\n",max,maxpos); printf("min=%d,pos=%d\n",min,minpos); } 3、分析以下程序,写出运行结果。 /* 文件名:ex7_3.c */ #include main ( ) { char str[20]; int i,num; gets(str); if(str[0]!=' ') { num=1; } else { num=0;

C语言实验__一维数组

实验6 一维数组 实验要求: 使用Visual C++ 6.0开发环境,完成以下习题。 1. (此题可不使用数组)输出1~100之间的不能被7整除的数。(要求使用continue语句,如果其能被7整除则continue)。源程序保存为6-1.c。运行效果截图保存为6-1p.jpg。 2. 对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。源程序保存为6-2.c。运行效果截图保存为6-2p.jpg。 3. 定义一个100个元素的数组,依次赋值为1 ~ 100。先输出其中能被3整除的数。再输出其中能被5整除的数。(注意数组的下标是从0开始。)源程序保存为6-3.c。运行效果截图保存为6-3p.jpg。 4. 让用户输入学生的人数n,然后输入这n个学生的语文成绩,保存在数组中。然后分别计算输出: (1)统计语文成绩平均分。 (2)不及格的学生序号及成绩、并统计不及格人数。 (3)最高分的成绩及最高分的学生的序号。 源程序保存为6-4.c。运行效果截图保存为6-4p.jpg。 5. 定义一个数组A存放6个学生的高数成绩,定义一个数组B存放这6个学生的英语成绩, 再定义一个数组C存放这6个学生的C++成绩。在输入时,要求逐个学生的三门课成绩输入(即先输入第1个学生的三门课成绩,再输入第2个学生的三门课成绩,以此类推)。求这6个同学三科的总分存放在数组D中,并输出。源程序保存为6-5.c。运行效果截图保存为6-5p.jpg。 6. 编程实现:简单版成绩管理系统1。 程序首先显示菜单,让用户选择1则添加一个学生的的记录,选择2则查看一个学生的记录,选择3则修改一个学生的记录,选择4则浏览所有学生记录。每个学生记录由其学号、高数成绩、英语成绩、C++成绩组成。(提示:定义一个100个元素的数组,存放学生的学号;定义一个100个元素的数组存放高数成绩,定义一个100个元素的数组存放英语成绩;定义一个100个元素的数组存放C++成绩;定义一个变量记录当前已经总共添加了多少个学生) 当用户选择1之后,让用户输入要添加的学生的学号、高数成绩、英语成绩、C++成绩。 当用户选择2之后,先让用户输入要查看的学生学号,然后输出其高数、英语、C++成绩。 当用户选择3之后,先让用户输入要修改的学生学号,然后依次让用户重新输入这个学生的高数、英语、C++成绩、 当用户选择4之后,依次输出每个学生的学号、高数、英语、C++成绩。 源程序保存为6-6.c。运行效果截图保存为6-6p.jpg。

第四章 数组作业

第四章数组 4.1 选择题 1. 以下关于数组的描述正确的是( )。 A. 数组的大小是固定的,但可以有不同的类型的数组元素 B. 数组的大小是可变的,但所有数组元素的类型必须相同 C. 数组的大小是固定的,所有数组元素的类型必须相同 D. 数组的大小是可变的,可以有不同的类型的数组元素 2. 以下对一维整型数组a的正确说明是( )。 A.int a(10); B. int n=10,a[n]; C.int n; D. #define SIZE 10 scanf("%d",&n); int a[SIZE]; int a[n]; 3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 4. 以下对一维数组m进行正确初始化的是( )。 A. int m[10]=(0,0,0,0) ; B. int m[10]={ }; C. int m[ ]={0}; D. int m[10]={10*2}; 5. 若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是( )。 A. &bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1 6. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存 中所占字节数是( )。 A. 3 B. 6 C. 10 D. 20 7. 若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是( ) A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] 8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。 #include main() { int a[10],i=0; while(i<10) scanf("%d",________ ); ┇ } A. a+(i++) B. &a[i+1] C. a+i D. &a[++i]

实验4数组(答案解析)

实验四数组 实验课程名:高级语言程序设计4 数组 专业班级:学号:姓名:实验时间:2016年4月27日实验地点:K4 指导教师:

(3)结果分析:当i能被3整除时,就换一次行。 (二)实验任务2 (1)程序代码:#include void main( ) { int i,a[5],sum=0; for(i=0;i<=4;i++) scanf("%d",&a[i]); for(i=0;i<=4;i++) sum+=a[i]; printf("sum=%d\n",sum); } (2)程序运行结果:

(3)程序分析:使用for循环依次输入5个数,并使5个数相加。 (三)实验任务3 (1)程序代码:#include int main( ) { int i,j,row=0,colum=0,max; int a[3][4] = {{1,2,3,4}, {9,8,7,6}, {-10,10,-5,2}}; max=a[0][0]; for(i=0;i<=2;i++) for (j=0;j<=3;j++) if(a[i][j]>max) {max=a[i][j]; row=i; colum=j; } printf(" Max=%d, Row=%d, Colum=%d\n", max, row, colum); return 0; } (2)程序运行结果:

(3)程序分析:分别将这12个元素同max相比较,当某个元素的值大于max时,则将此元素的值赋值给max,最后输出max及最大值的下标。 (四)实验任务4 (1)程序代码:#include void main( ) { int i, x, a[10]={1,2,3,4,5,6,7,8,9,10}; scanf("%d",&x); /*输入x变量的值*/ for ( i=0; i<10; i++ ) printf("%4d",a[i]); printf("\n"); for(i=0;i<10;i++) /* 循环查找与x相等的元素*/ if ( x==a[i] ) printf("%d\n",i); /* 输出查找结论,输出下标值*/ else printf("Not found %d\n",x); } (2)运行结果:

数组的应用实验报告

数组的应用 电力实10 郝毅(201001000707)上机时间:周二上午 一实验目的 1 掌握数值型一维数组及二维数组的定义,初始化,以及输入输出的方法。 2 掌握用一维数组及二维数组实现的算法。 3 掌握字符型数组的定义,初始化,以及输入输出的方法。 4 掌握用字符型数组解决字符串问题的方法。 5 掌握常用字符串处理函数。 6 掌握用数组作为函数形参的相关语法规则和编程技巧。 7 掌握在VisualC++集成环境中调试与数组相关程序的方法。 二程序分析 1 Step1:定义数值型一维数组,及变量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语言程序设计 一维数组

5.1一维数组 5.1.1找最小数 【例5-1】输入10个整数,找出其中的最小数,然后输出这10个数和最小数。 参考程序如下: /*程序5-1.c*/ #include int main() { int i,min,a[10];/*定义数组*/ printf("Enter data:");/*提示输入*/ for(i=0;i<10;i++) scanf("%d",&a[i]);/*输入10个数*/ min=a[0];/*假设下标为0的元素最小*/ for(i=1;i<10;i++)/*找最小值a[i]*/ if(a[i]

第七章数组上机作业

第七章数组 通过本章实验作业应达目标 1.学习并掌握一维数组与二维数组的定义、使用及初始化方法。 2.学习数组作为函数参数的用法。 3.熟练掌握字符数组和字符串的使用方法。 4.掌握数组的一种排序算法。 本章上交作业 程序7_1.c、7_3.c、7_5.c、7_7.c上传至211.64.135.121/casp。 实验一一维数组的定义和简单应用 【实验目的】 学会定义一维数组,掌握一维数组的遍历操作,掌握在一组数组中求最大值、最小值的方法。 【实验内容】 从键盘读入5个成绩到一个数组中,求其中的最大值,最小值和平均成绩。在屏幕上显示输入成绩的提示信息,用键盘输入一个成绩,接着提示输入下一个,直到结束。以7_1.c命名本程序并上交。 程序运行界面 【实验提示】 求最大(小)值通常用“打擂台”的方法。首先设计两个变量,如max和min分别用来存放最大值和最小值,并将数组的首元素赋给这两个变量,这就是到目前为止的最大(小)值,然后利用循环依次比较其他的元素,总是将当前最大(小)值赋给max和min,直至比较到最后,max和min中的数据就是最大值和最小值。 求平均值还要设置一个变量sum,用来累加各元素的值。 实验二一维数组的排序 【实验目的】 熟练掌握一维数组三种基本排序方法:选择法,冒泡法,比较法。 【实验内容】

从键盘上接收10个成绩,存放到一个一维数组score中,分别利用三种排序方法,将数组从小到大排序并在屏幕上显示排序结果。分别以7_2_1.c、7_2_2.c和7_2_3.c命名三个程序。 【实验提示】 所谓排序是指把一组杂乱无章的数据按照大小顺序排列。 将被排序的n个数据存放在一个数组中, 假如按升序排列。我们将数组定义为a[n],数据存放在a[0] 到 a[n-1] 中。 1.比较排序法 将a[0]与a[1]比较,若a[1]a[1],则二者交换,否则不变,a[1]再与a[2]比较,前者大就交换,…,依次两两比较至到a[n-2]与a[n-1]比较,经过一轮以后,最大者“沉”到了最后,小数往上“冒”,所以得名“冒泡法”。第二轮比较数组的前n-1个,即a[0]~a[n-2] 。重复此过程,直到所有的元素比较完毕。 实验三一维数组元素的调换 【实验目的】 进一步加强对数组的应用。 【实验内容】 找出数组中的最大数和最小数,并把最大数和a[0]中的数对调、最小数和a[1]中的数对调,其余数据位置不变。例如,程序运行时若输入:2 4 6 11 3 9 7 0 5 8,则输出:0 2 6 11 3 9 7 4 5 8。以7_3.c命名本程序并上交,部分程序如下。 #define N 10 main() {int a[N],i;

实验八 一维数组与二维数组

实验8:一维数组与二维数组 实验名称:一维数组与二维数组成绩: 实验日期:年月日实验报告日期:年月日 一、实验目的 1、理解一维数组和二维数组的概念 2、掌握一维数组和二维数组的定义、初始、数组元素引用。 3、掌握一维数组和二维数组的输入/输出。 4、掌握与数组有关的算法。 二、实验内容 1、编制程序,求Fibonachi数列的前10项。 提示:Fibonachi的第1,2项分别为1,1。其后任何一项满足a i=a i-2+a i-1。 2、编写找出1-100之间能被7或11整除的所有整数,存放在数组a中,并统计其个数。要求 以每行排列5个数据的形式输出a数组中的数据。 3、设有4x4的方阵,其中的元素由键盘输入。求出(1)主对角线上元素之和;(2)辅对角线 上元素之积;(3)方阵中最大的元素。 提示:主对角线元素行、列下标相同;辅对角线元素行、列下标之和等于方阵的最大行号(或最大列号)-下标、行列号基于0。 三、实验要求 1、编制源程序,对于程序3输入测试数据。 2、在Turbo C下完成程序的编辑、编译、运行。查看、分析程序结果。 四、实验步骤、过程 1、编辑、编译、运行程序题1。 2、编辑、编译、运行程序题2。

3、编辑、编译、运行程序题3。测试数据: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 五、源程序清单、测试数据、结果。 六、实验出现的问题、实验结果分析 (1)数组下标范围容易搞错,容易产生越界错误。 (2)利用 scanf()输入数据时取地址符号(&)容易忘记。 七、实验小结和思考 典型算法需要在理解的基础上记忆。

数组的综合应用例子

数组的综合应用例子 时间:2009-6-19 8:54:45 点击:1409 数组的综合应用 为了加深对数组的理解,下面结合一些常用算法的编程来更加深入地学习和使用数组。由于一维数组和二维数组是程序设计中最常用的数组形式,因此这里的举例均为一维和二维数组。 1.数组元素的输入和输出 [例5-12] 由用户输入5个数组元素的值并把它们输出在窗体上。 Option Explicit Private Sub Command1_Click() Dim a(1 To 5) As Integer, i As Integer For i=1 To 5 a(i)=InputBox("请输入第" & Str(i) & "个元素") Next For i=1 To 5 Print "a (";i; ")="; a(i) Next End Sub 程序运行后,单击命令按钮,执行事件过程Command1_Click。若输入5个值10,20,30,40,50,则窗体上显示的输出结果是: a(1)=10 a(2)=20 a(3)=30 a(4)=40 a(5)=50 程序中声明了一个具有5个元素的一维整型数组,分别用循环语句输入、输出数组元素的值。在循环体内,数组元素用循环控制变量i作下标,i值的不同就表示数组元素的不同。在程序中引用数组元素时,其下标可以使用表达式。只要表达式的结果不超出数组定义的上界和下界范围,下标表达式就是合法的。例如本例中,若i=2,则: a(i+1)的值为30; a(a(i+3)\10)的值为50。 下标表达式的值还可以是实数,此时VB将自动对其进行四舍五入取整。例如: a(1+0.4)的值是10; a(2+0.5)的值30。 2.数组元素插入删除

c语言.作业5 数组

作业5 数组 截止时间:5月21日23:59前

oth++; } } printf("\nupper: %d\nlower: %d\n digit: %d\nblank: %d\n other: % d\n",upp,low,dig,spa,oth); return 0; } 运行程序后输入输出参考示例如下:

1.【问题描述】 从键盘输入两个整数m和n(1 int main(){ int i,j,count=0,num; int a[5][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{0,1,2,3,4},{6,7,8,9,0}}; scanf("%d",&num); for(i=0;i<5;i++) for(j=0;j<5;j++)

实验六 一维数组实验报告

*** 软件类实验报告 课程名称:C语言程序设计学号: 姓名: 班级: 指导教师: 开课学期: 学院: ***教务处

⑷一维数组排序。 四、实验过程及内容:(运行结果请抓图到对应题目的下方) 1. 先分析以下程序,写出运行结果,再上机检验。 2.程序填空题。下面程序的功能是9个评委给某个参赛选手打分,去掉一个最高分和一个最低分,求该参赛选手的平均分。填空完成程序。

实验结果: 3. 程序填空题。有数列1,1,2,4,7,13,24…,该数列的规律是从第4项起,每项是它的前三项之和。下列程序的功能是将该数列的前30项存放在一维数组中,输出时每行输出5个数。填空完成程序。 实验结果: 4. 程序改错题。下面程序的功能是将数组中的数按从大到小排序后输出。改正程序中的错误。 实验结果: 5. 程序改错题。某公司从用公用电话传递数据,数据是四位的整数,在传递过程中需要加密,加密规则为每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。改正程序中的错误。

实验结果: 6. 小楚参加了一个研究生考试培训班,共30次课,由于路途较远,每次都是打车去上课,来回的车费分别存储在数组a和b中,其中-1表示未去上课。 编程计算小楚参加培训班共打车花费多少钱?(要求保留1位小数,用循环实现) 输出结果的形式为: s=1234.5 a数组和b数组定义如下: double a[30]={31.0,32.0,30.3,32.8,30.5,30.6,31.0,32.8,-1,31.8,31.9,31.5,32.3,32.3,31.8,32.5 ,31.5,30.3,30.4,32.5,30.2,30.2,30.7,32.1,32.1,31.4,31.9,31.9,-1,30.5}; double b[30]={30.2,30.2,30.3,31.6,32.7,31.5,30.4,32.4,-1,31.0,31.8,32.1,31.6,31.4,32.4,32.1 , 32.5,32.3,32.5,31.4,31.2,30.3,32.3,30.7,31.3,30.2,31.1,30.5,-1,31.9}; 五、实验小结

相关文档
相关文档 最新文档