实验六 一维数组实验报告

合集下载

一维数组应用实验过程中遇到的问题及解决

一维数组应用实验过程中遇到的问题及解决

一维数组应用实验过程中遇到的问题及解决下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!一维数组应用实验过程中遇到的问题及解决在进行一维数组应用实验过程中,常常会遇到一些问题,这些问题可能会影响实验的进行和结果的准确性。

实验报告6-2

实验报告6-2

实验报告课程名称:高级语言程序设计实验六:一维数组和二维数组班级:学生姓名:学号:专业:指导教师:学期:2015-2016学年上学期云南大学信息学院一、实验目的1、掌握一、二维数组的定义及初始化2、掌握数组元素的输入、输出及引用方法3、掌握使用循环对数组元素进行访问4、掌握一、二维数组的简单应用 二、知识要点1、一、二维数组的定义与赋值(初始化、循环键盘输入)2、访问数组元素(下标的正确使用)3、数组的典型应用(复制、求和、统计某种元素个数、求数组中的最大/最小值、元素的查找与排序)三、实验预习 (要求做实验前完成)1、定义一个有四个元素的float 型数组:float a[4];2、定义一个具有五个元素的整型数组并将其初始化为{1,2,3,4,5}:inta[5]={1,2,3,4,5};3、要用循环从键盘输入整型数组s 的元素值(共6个),应该使用语句:4、交换数组元素d[2]和d[4],使用语句:5、语句for(k=0;k<3;k++) x[2][k] = 0; 将把哪些元素变为0? 四、实验内容 (要求提供:① 算法描述或流程图 ② 源程序 )1、已知一个数组有10个元素,值分别是3,6,8,4,5,66,80,72,69,70。

编程,将数组元素逆置后输出。

(提示:第一个与最后一个交换位置,第二个与倒数第二个交换位置,……)2、编程序求Fibonacci 数列的前30项,Fibonacci 数列的定义为:⎪⎩⎪⎨⎧>+===--)2()2(1)1(121n f f n n f n n n 要求将数列存放在数组中,并按每行5个数的格式输出该数列。

3、输入14 一个4行4列的二维数组,统计偶数的个数,并输出所有小于5的数。

4、已知一个二维数组:{{14,26,18,17},{24,37,21,8},{19,31,22,16},{7,19,14,26}},编程,输出该二维数组的最小元素的行下标与列下标。

C语言实验__一维数组

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++成绩。

上机实验六一维数组-答案

上机实验六一维数组-答案

上机实验六一维数组班级学号姓名本次题目一共‎5题,必做4个,选做1个。

选做题可能有‎点难度,请尝试着做一‎下,能做出来说明‎目前你已经很‎强了!一.目的要求1.掌握一维数组‎的基本概念,定义和初始化‎方法;2.掌握一维数组‎的基本操作,如输入、输出、引用数组元素‎;3.掌握与数组有‎关的基本算法‎,如寻找最大/最小值、排序等。

二.实验内容【实验题1】程序改错:源程序用数组‎求Fi bon‎a cci数列‎前20项,但在带标记的‎代码行存在错‎误。

源程序如下:#includ‎e<stdio.h>void main(){ int i, fib[20];fib[1]= fib[2]= 1; //错误1for(i=3; i<=20; i++) //错误2fib[i]= fib[i-1] +fib[i-2];for(i=1; i<=20; i++){ //错误3printf‎("%6d", fib[i]);if( (i+1)%5==0 ) printf‎("\n");}}数组的下标应‎该从几开始?标出的三个错‎误语句行,应分别改为?数组下标应该‎从0开始,错误1修改为‎:fib[0]= fib[1]= 1;错误2修改为‎:for(i=2; i<20; i++);错误3修改为‎:for(i=0; i<20; i++)未改正错误之‎前,程序运行结果‎是(只写最后一项‎)4181改正后,程序运行结果‎是(只写最后一项‎)6765【实验题2】程序填空:给定平面上1‎0个点,求其中离原点‎最近的点。

源程序用一维‎数组x存放这‎10个点的x‎坐标,用一维数组y‎存放相应的y‎坐标,即第i个点的‎坐标为(x[i], y[i])。

用变量ind‎e x记录最近‎点的下标。

程序中使用距‎离的平方做比‎较:x*x+y*y。

#includ‎e<stdio.h>void main(){int i, index; //index是‎离原点最近的‎点的下标double‎d, min; //min是到原‎点的最近距离‎的平方double‎x[]={1.1, 3.2, -2.5, 5.67, 3.42, -4.5, 2.54, 5.6, 0.97, 4.65};// 赋初值double‎y[]={-6, 4.3, 4.5, 3.67, 2.42, 2.54, 5.6, -0.97, 4.65, -3.33};// :赋初值index= 0 ; min= x[0]*x[0]+y[0]*y[0]; //设第0个点为‎最近点for(i=1; i<10; i++){d= x[i]*x[i]+y[i]*y[i];if( d < min ){ //Line 11min=d;index=i;}}printf‎("%d: x=%.2f, y=%.2f \n", index, x[index] , y[index] ); //输出最近点的‎下标和坐标}程序运行结果‎为:数组x和y的‎长度应该各是‎多少?10,10如果将程序功‎能改为求10‎个点中离原点‎最远的点,语句行Lin‎e 11又应如何‎填写?i f( d>min ){ //Line 11【实验题3】程序填空:输入5个整数‎, 将这5个数按‎逆时针顺序转‎动一次后再输‎出,如输入1 2 3 4 5,逆时针转动一‎次后,输出2 3 4 5 1。

实验六 一维数组实验报告

实验六 一维数组实验报告

***软件类实验报告课程名称: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.5a数组和b数组定义如下:doublea[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};doubleb[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};五、实验小结。

实验6一维数组

实验6一维数组

实验6 一维数组一、实验目的1.掌握一维数组的声明、引用方法;2. 掌握一维数组的初始化和输入、输出的方法;3. 掌握与一维数组有关的常用算法,特别是排序算法;4. 初步掌握利用一维数组实现有关算法,掌握字符串数组、结构类型数组和常用字符串函数的使用。

二、实验要求本课包含基础与验证型、综合与设计型两类实验。

基础与验证型是本实验课的基本要求,要求学生全部完成;综合与设计型是较高要求,要求学生尽量理解、编程实现,完成4个完整的可运行的有关一维数组的应用程序。

具体要求:(1)掌握各种类型一维数组的声明和引用方法;(2)掌握 IDE环境下一维数组编程的调试方法,能发现、改正下标越界等常见错误;(3)掌握利用循环语句对一维数组进行赋值、输出的方法,以及一般处理的算法;(4)掌握字符串数组、结构类型数组的使用,能利用常用字符串函数实验数据的输入、输出(5)初步掌握结构类型数组的使用,能利用结构类型数组实现复杂数据的处理。

三、实验范例1.简单类型一维数组的声明和引用方法a.声明一个数组变量来存储小学各年级的学生数:Dim students(4) As Integeri=0:students(i + 1) = 200数组students 包含5 个元素,都是整型变量,元素的索引范围为从0 到4;第2个元素(二年级的学生数)被指定为200。

b.声明、创建并初始化一个字符类型数组,并赋初值,同时指定下标上限为2:Dim testChars () As Char = {"%"c, "&"c, "@"c}testChars数组共有3个字符型元素。

"%"c中单个c跟随在带引号的单个字符后,用于创建一个字符型数据。

c.声明、创建并初始化一个存储判断正误题目答案的数组,并且指定元素值:Dim answers() As Boolean = {True, True, False, True}数组answers的长度为4,其元素从索引0 到索引3d.声明并创建一个字符串类型的数组,并在后续语句中提供2个元素值:Dim comments(30) As Stringcomments(0) = "This is the first comment."comments(5) = "This is the sixth comment."变量comments 中的数组长度为31,索引为0 和5 的元素被赋值,其他元素为默认值空("")。

数组实验报告实验小结

数组实验报告实验小结

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

为了更好地理解和掌握数组的相关知识,我们进行了一系列的数组实验。

本次实验报告将对实验过程进行总结,并对实验结果进行分析。

二、实验目的1. 理解数组的基本概念和特点;2. 掌握数组的创建、访问和操作方法;3. 熟悉数组在编程中的应用;4. 培养实验操作能力和问题解决能力。

三、实验内容1. 数组的定义与创建2. 数组的初始化3. 数组元素的访问与修改4. 数组的排序与查找5. 数组的应用实例四、实验过程1. 数组的定义与创建实验一:定义一个整型数组,并初始化为10个元素。

代码如下:```c#include <stdio.h>int main() {int arr[10];// 初始化数组for (int i = 0; i < 10; i++) {arr[i] = i 2;}// 打印数组元素for (int i = 0; i < 10; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```2. 数组的初始化实验二:使用初始化列表直接初始化数组。

代码如下:```c#include <stdio.h>int main() {int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};// 打印数组元素for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) { printf("%d ", arr[i]);}printf("\n");return 0;}```3. 数组元素的访问与修改实验三:访问和修改数组元素。

代码如下:```c#include <stdio.h>int main() {int arr[5] = {1, 2, 3, 4, 5};// 访问数组元素printf("The first element is: %d\n", arr[0]);// 修改数组元素arr[0] = 10;printf("After modification, the first element is: %d\n", arr[0]); return 0;}```4. 数组的排序与查找实验四:使用冒泡排序算法对数组进行排序。

实验6数组一

实验6数组一

《C语言程序设计》实验报告----------------------------------------------------------------------------------------------实验6 数组(一)一、实验目的(1)掌握一维数组、二维数组的定义,初始化方法。

(2)掌握一维数组、二维数组中数据的输入和输出方法。

(3)掌握与数组有关的算法(查找,插入,排序等算法)。

(4)了解用数组处理大量数据时的优越性。

二、实验内容和步骤1.填空题(1)给定程序c6-1.c的功能是在第一个循环中给a数组的前10个数组元素依次赋值1,2,3,4,5,6,7,8,9,10;在第二个循环中使a数组的前10个元素中的值对称折叠,变成1,2,3,4,5,5,4,3,2,1;在最后一个循环中输出对称折叠以后的a数组的前10个元素。

#include<stdio.h>int main(){ int i,a[10];for(i=1;i<=10;i++)a[i-1]=i;for(i=0;i<5;i++)a[i+5]=5-i;for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");return 0;}(2)给定程序c6-2.c的功能是把数组a(大小为M)的前M-1个元素中的最小值放入a的最后一个元素中。

#include<stdio.h>#define M 11int main(){ int a[M],i;for(i=0;i<M-1;i++)scanf("%d",&a[i]);a[M-1]=a[0];for(i=1;i<=10;i++)if(a[M-1]>a[i])a[M-1]=a[i];printf("Min is %d\n",a[M-1]);return 0;}(3)c6-3.c的功能是求二维数组a中的最大元素及其下标。

实验数组一

实验数组一

《C语言程序设计》实验报告----------------------------------------------------------------------------------------------实验6 数组(一)一、实验目得(1)掌握一维数组、二维数组得定义,初始化方法。

(2)掌握一维数组、二维数组中数据得输入与输出方法。

(3)掌握与数组有关得算法(查找,插入,排序等算法)。

(4)了解用数组处理大量数据时得优越性。

二、实验内容与步骤1、填空题(1)给定程序c6-1、c得功能就是在第一个循环中给a数组得前10个数组元素依次赋值1,2,3,4,5,6,7,8,9,10;在第二个循环中使a数组得前10个元素中得值对称折叠,变成1,2,3,4,5,5,4,3,2,1;在最后一个循环中输出对称折叠以后得a 数组得前10个元素。

#include<stdio、h>int main(){ int i,a[10];for(i=1;i<=10;i++)a[i-1]=i;for(i=0;i<5;i++)a[i+5]=5-i;for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");return 0;}(2)给定程序c6-2、c得功能就是把数组a(大小为M)得前M-1个元素中得最小值放入a得最后一个元素中。

#include<stdio、h>#define M 11int main(){ int a[M],i;for(i=0;i<M-1;i++)scanf("%d",&a[i]);a[M-1]=a[0];for(i=1;i<=10;i++)if(a[M-1]>a[i])a[M-1]=a[i];printf("Min is %d\n",a[M-1]);return 0;}(3)c6-3、c得功能就是求二维数组a中得最大元素及其下标。

C语言-一维数组

C语言-一维数组

实验二:数组(一)一、实验目的(1)掌握一维数组的的定义、赋值和输入输出的方法;(2)掌握与数组有关的算法(特别是排序算法);二、实验内容编程序并上机调试运行。

1、由键盘对10个数组元素初始化,求它们的平均值并输出。

代码:#include<stdio.h>void main(){int i;float avg,sum=0,num[10];printf("input 10 numbers: \n");for(i=0;i<10;i++){scanf("%f",&num[i]);sum+=num[i];}avg=sum/10;printf("average is :%.2f\n",avg);}结果:2、输入一个十进制整数,输出与其相等的二进制形式。

将二进制保存在一个数组中,然后按相反的顺序输出。

代码:#include<stdio.h>#include<string.h>void main(){int num,i = 0,n ;char j2[80],j2f[80] ;printf("Input a int :") ;scanf("%d",&num) ;doj2f[i] = num % 2 + 48 ;num /= 2 ;i ++ ;}while(num != 0) ;n = strlen(j2f) ;for(i = 0 ;i < n;i ++){j2[i] = j2f[n - i - 1] ;printf("%c",j2[i]) ;}printf("\n") ;puts(j2f) ;getchar() ;}结果:3、编程对10个数组元素的排序。

代码:#include<stdio.h>void main(){int i,j,t,a[10];printf("Please input ten numbers: \n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;printf("the sorted numbers: \n");for(i=0;i<10;i++)printf("%d ",a[i]);printf("\n");}结果:。

C语言实验__一维数组

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++成绩。

Lab6-1_一维数组

Lab6-1_一维数组

Lab6-1_⼀维数组实验6-1 ⼀维数组【知识点回顾】1.数组作为复合型数据拥有两个重要特性:有序性和同质性。

有序性体现在数组元素紧密相连,⼀个挨⼀个存放,可以通过数组下标对其进⾏逐个访问,同质性体现在全体数组元素拥有相同的数据类型。

2.⼀位数组声明:数据类型数组名[数组长度量表达式]3.⼀维数组初始化1)声明时完全初始化:int a[5]={1,3,5,7,9};2)声明时不完全初始化:int b[5]={1,3,5};按顺序赋初值,剩余清零。

3)声明时未初始化,只能后期逐个初始化,见典型例题。

4.⼀维数组元素的访问1)数组元素:如果有int a[5]={1,3,5,7,9};int i;则有a[i](i的取值为0,1,2,3,4)表⽰对数组中元素的访问。

2)数组元素下标可以使⽤变量表达式【典型例题】1.输⼊⼩组⼈数,然后输⼊该⼩组成员的得分,并输出。

#include#define N 50int main(){int n,i;//n⽤于确定⼩组⼈数,i⽤于控制循环float score[N];//存放⼩组成员得分数据//确定⼩组⼈数printf("How many members in your team?");scanf("%d",&n);//确定⼩组成员得分for(i=0; i{printf("Please enter the score of array[%d]: ",i);scanf("%f",&score[i]);}//打印输出printf("\nThe score are : ");for(i=0; i{printf("%8.2f",score[i]);}printf("\n");return 0;}2.例2,⼀个整数的数组,找出最⼩数和其下标,并在主函数打印输出。

实验报告6 一维数组程序设计

实验报告6 一维数组程序设计

实验报告6 一维数组程序设计
一、实验目的
本实验主要是通过编写一维数组程序,掌握数组的定义、初始化、赋值、排序等基本操作,并能够解决实际问题。

二、实验内容
本实验共设有两个小题,分别是:
1.通过一维数组计算一个班级学生的平均分、最高分、最低分和及格率。

2.通过一维数组将若干个数字进行排序,并输出排序后的结果。

三、实验环境
本实验采用C++语言进行编写,所用IDE为Dev-C++。

四、实验步骤
1.题目一代码
五、实验结果
在第一题输入4个学生的分数为:87,92,54,77时,输出结果如下:
请输入学生数量:4
请输入第1个学生的分数:87
请输入第2个学生的分数:92
请输入第3个学生的分数:54
请输入第4个学生的分数:77
平均分为:77.5
最高分为:92
最低分为:54
及格率为:75%
请输入数字个数:7
请输入第1个数字:8
请输入第2个数字:6
请输入第3个数字:1
请输入第4个数字:2
请输入第5个数字:10
请输入第6个数字:7
请输入第7个数字:3
排序后的结果为:1 2 3 6 7 8 10
六、结论
通过本实验的完成,我对于一维数组的使用和其基本操作掌握更加熟练。

在日后的学习和工作中能够更加灵活地运用数组处理问题。

七、体会
在本次实验中,我更加深刻地意识到了机械化的代码是怎么产生的,编写代码时一些细节之处需要注意,千万不能粗心大意,否则就很有可能出现难以想到的错误。

同时,对于一些难以理解与掌握的知识点,只有通过实践才能真正掌握和理解。

C语言 实验六 一维数组

C语言   实验六 一维数组
源程序如下:
#define N 10
#include"stdio.h"
main()
{
int a[N],i,j,temp;
printf("please input %d numbers\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
for(i=1;i<=10;i++)
scanf("%f",&a[i]);
for(i=1;i<=9;i++)
{min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j])
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
for(i=2;i<=9;i++) /*注意i值的变化范围*/
分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,我们取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。
4. 编一程序,将两个字符串连接起来,不要用strcat函数。
分析:这道题的核心是排序。将评委所打的10个分数利用数组按增序(或降序)排列,计算数组中除第一个和最后一个分数以外的数的平均分,其中排序部分这里用选择法实现。

实验6 数组

实验6 数组

实验6 数组【实验目的】1. 熟练掌握使用数组编程的方法。

2. 熟练掌握排序算法。

3. 熟练掌握字符串的存储和操作方法。

【实验内容】一、一维数组实验1. 以下程序功能为:输入一个正整数n,再输入n个整数,将它们排序后由小到大输出。

找出并改正以下源程序中错误,得出正确的运行结果。

源程序(有错误的程序)#include <stdio.h>void main(){int i,j,num,a[num];int change,t;printf("Enter Number: ");scanf("%d",&num);printf("Enter Data: \n");for(i=0;i<num;i++)scanf("%d",&a[i]);for(i=num-1,change=1;i>0 && change;i--){change=0;for(j=0;j<=i;j++)if(a[j]>a[j+1]){t=a[j]; a[j]=a[j+1]; /*调试时设置断点*/a[j+1]=t; change=1;}}printf("Sorted data:\n"); /*调试时设置断点*/for(i=0;i<num;i++)printf("%d ",a[i]);printf("\n");}运行结果(改正后程序的运行结果)623 77 14 89 6 686 14 23 68 77 89说明:程序编译时出现的错误信息是指定义数组a时,数组长度必须是常量,把a[num]改为a[50]即可,重新编译连接没有错误,但是输出结果有误。

为了找出程序的问题,关闭运行窗口,准备调试程序。

调试程序的步骤:(1)设置断点:设置2个断点,具体位置见源程序的注释。

一维数组实验

一维数组实验

for j=0 to n-2
for i=0 to n-j-1 真 a[i]>a[i+1] 假
a[i]a[i+1]
for(j=0; j<n-1; j++) for(i=0;i<n-1-j; i++) if(data[i]>data[i+1]) { temp=data[i]; data[i]=data[i+1]; data[i+1]=temp; }
3 一维数组的初始化
4 一维数组程序举例
实验要求
1. 复习数组的定义、引用和相关算法的程序 设计。 2. 编写程序,运行程序并记录运行结果。 3. 认真独立实验报告。3、4、5题作成实验 报告(实验内容、实验步骤、实验结果)。
实验内容
1、调试下列程序,使之具有以下功能:输入10 个整数,按每行3个数输出这些整数,最后输 出10个整数的平均值 。修改程序并输出结果。
2、以下是求数组a中最大值和最小值所在位 置的程序,请在下划线处填上适当的内容, 以使程序完整,然后上机运行程序,并分 析运行结果。
main() { int i,imax,imin,a[10]; printf(“Input a[10]:”); for(i=0; i<10; i++) scanf(“%d”,&a[i]); imax=imin=0; 最大值、最小值 for(i=0; i<10; i++) 的判断 { if(__________________) imax=i; 最大值、最小值 if(__________________) imin=i; 的位置,引用。 } printf(”\n imax=%d, 最大值是%d\n”,imax,a[_____]); printf(”\n imin=%d, 最小值是%d\n”,imin,a[_____]); }

数组存储实验报告

数组存储实验报告

数组存储实验报告数组存储实验报告引言:在计算机科学领域中,数组是一种常见的数据结构,用于存储和管理一系列相同类型的数据。

通过数组,我们可以方便地访问和操作多个元素。

本实验旨在探索数组的存储方式,并研究其在不同场景下的应用。

一、数组的定义与基本操作数组是由一系列相同类型的元素组成的数据结构。

在C语言中,我们可以通过声明一个变量并指定其长度来定义一个数组。

例如,int numbers[5]就定义了一个包含5个整数的数组。

数组中的元素可以通过下标来访问和修改,下标从0开始计数。

二、一维数组的应用1. 数组的遍历一维数组的遍历是指依次访问数组中的每个元素。

通过使用循环结构,我们可以方便地实现数组的遍历。

例如,可以使用for循环来遍历数组并输出每个元素的值。

2. 数组的查找在一维数组中查找某个特定元素是常见的操作。

我们可以使用线性查找算法来实现。

即从数组的第一个元素开始逐个比较,直到找到目标元素或遍历完整个数组。

如果找到了目标元素,就返回其下标;如果遍历完整个数组仍未找到,则返回-1。

三、二维数组的应用1. 二维数组的定义与初始化二维数组是由多个一维数组组成的数据结构。

在C语言中,我们可以使用二维数组来表示矩阵等二维结构。

二维数组的定义与一维数组类似,只需在声明时指定两个维度的长度。

例如,int matrix[3][3]就定义了一个3x3的整数矩阵。

2. 二维数组的遍历二维数组的遍历可以通过嵌套循环来实现。

外层循环用于遍历行,内层循环用于遍历列。

通过这种方式,我们可以依次访问和修改二维数组中的每个元素。

四、动态数组的应用静态数组在定义时需要指定长度,而动态数组的长度可以在运行时确定。

在C语言中,我们可以使用指针和动态内存分配函数(如malloc)来创建动态数组。

动态数组的长度可以根据实际需求进行动态调整,从而提高程序的灵活性。

五、数组的优缺点1. 优点数组具有简单、高效的特点。

通过使用数组,我们可以方便地存储和管理多个相同类型的数据。

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

***
软件类实验报告
课程名称: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};
五、实验小结。

相关文档
最新文档