程序设计实验_第1页
程序设计实验_第2页
程序设计实验_第3页
程序设计实验_第4页
程序设计实验_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验10一维数组安徽师范大学数学计算机科学学院2主要内容一、实验目的二、实验原理三、实验内容四、实验要求一、实验目的1、熟练掌握一维数组的定义、初始化和输入输出方法。2、掌握与数组有关的常用算法(如查找、排序等)。安徽师范大学数学计算机科学学院3二、实验原理1、一维数组的定义数据类型符数组名称[整型常量表达式];其中:数组元素个数必须是常量,一般情况此种定义方式数组元素值随机。2、一维数组的初始化数据类型符数组名称[整型常量表达式]={初值1,初值2,…,初值n};

安徽师范大学数学计算机科学学院43、一维数组基本操作的主要代码段1)数组元素的插入 2)数组元素的删除3)查找数组中的特定元素4)数组元素中的最大值4、常用排序算法的原理 冒泡排序 选择排序 插入排序安徽师范大学数学计算机科学学院5三、实验内容1、验证性实验例题。安徽师范大学数学计算机科学学院6题目:任意输入10个数,用冒泡排序法对这10个数按由小到大的顺序排序安徽师范大学数学计算机科学学院7如果要对n个数进行冒泡排序,那么要进行n-1趟比较,在第1趟比较中要进行n-1次两两比较,在第j趟比较中要进行n-j次相邻两数两两比较,其中趟数决定了两两比较的次数,经此分析发现排序算法需要双重循环实现源程序:#include<stdio.h>#defineN10intmain(){ inta[N],i,j,t; for(i=0;i<N;i++)//输入10个数存放至数组中 scanf("%d",&a[i]); //冒泡排序

for(i=0;i<N-1;i++)//i表示趟数

for(j=0;j<N-1-i;j++) if(a[j]>a[j+1])//相邻两个数比较,大数沉底

{t=a[j]; a[j]=a[j+1];a[j+1]=t; }for(i=0;i<N;i++)//输出结果 printf("%d",a[i]); return0;}题目:任意输入10个数,用选择排序法对这10个数按由小到大的顺序排序安徽师范大学数学计算机科学学院8如果要对n个数进行选择排序,那么要进行n-1趟比较,在第i趟比较中都是从待排序的区间中经过选择和交换后选出待排序区中的最小数值存放到a[i]中源程序:#include<stdio.h>#defineN10intmain(){ inta[N],i,j,t; for(i=0;i<N;i++)//输入10个数存放至数组中

scanf("%d",&a[i]); //选择排序

for(i=0;i<N-1;i++)//i表示趟数

for(j=i+1;j<N;j++)//a[i]到a[N-1]区间中找最小值存放到a[i] if(a[i]>a[j]) {t=a[i]; a[i]=a[j]; a[j]=t;}for(i=0;i<N;i++)//输出结果

printf("%d",a[i]); return0;}课堂练习练习题目1:从键盘中输入10个整数存放到数组a中,编程求出数组a中每隔一个元素的两元素之和,并将这些和输出,要求每行输出3个数。练习题目2:从键盘中输入10个不同的整数,找出其中的最大值和最小值,将最大值和最小值位置互换,将互换后的10个数输出。安徽师范大学数学计算机科学学院9课堂练习练习题目3:从键盘上输入10个整数,要求将第1个数与最后一个数互换,第2个数与倒数第2个数互换,以此类推,将互换后的数组输出。请填写缺少的语句段。#include<stdio.h>#defineN10intmain(){ inta[N],i,j,t; for(i=0;i<N;i++)//输入10个数存放至数组中

scanf("%d",&a[i]);//请补充数据交换的实现for(i=0;i<N;i++)//输出结果

printf("%d",a[i]); return0;}安徽师范大学数学计算机科学学院103、在线测试基础题1)判断多维空间点的优于关系(OJ1345)Description编写程序,判断k多维空间中某点是否优于另一点,优于关系定义为:在k维空间中,某点(A1,A2,...Ak)优于另一点(B1,B2,...Bk),当且仅当Ai>Bi成立,i=1,2,...,k。Input k的值及两个点A和B的坐标Output A点是否优于B点,若优于输出YES,不优于输出NOSampleInput52345612345SampleOutputYES安徽师范大学数学计算机科学学院112)求集合的中值(OJ1347)Description编写程序,假设集合中有奇数个数字,查找一个数,在集合中大于等于它的数和小于等于它的数的个数相等,将该数输出,若没有找到则输出ERRORInput整数n和n个整数Output找到的中值SampleInput512355SampleOutput3安徽师范大学数学计算机科学学院124、在线测试提高题1)求集合之间关系(OJ1349)Description编写程序,读入N,和有N个数组成的集合;再读入M,和由M个数组成的集合。然后判断第2个集合是否:(a)是第1个集合的子集。输出subset(b)是第1个集合的真子集。输出realsubset(c)既非(a)有非(b)。输出notsubsetInput3组以下数据:

N和N个整数,M和M个整数。0<M,N<1000Output相应的判断结果安徽师范大学数学计算机科学学院132)集合元素归并(OJ1350)Description编写程序,把整型数组中值相同的元素删得只剩一个,并把剩余下来的元素全部放到数组的前面。设数组元素的个数N,1<N<=10000InputN和N个整数Output删除相同元素后的数组元素,数字之间用空格隔开,保证各元素第一次出现的先后次序的一致性。安徽师范大学数学计算机科学学院14安徽师范大学数学计算机科学学院15#include<stdio.h>intmain(){ inti,j,n,a[10000],b[10000],cnt=0; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]);for(i=0;i<n;i++) { for(j=0;j<cnt;j++) if(b[j]==a[i])break; if(j>=cnt) {b[cnt]=a[i]; cnt++; } } for

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论