C语言实验习题实验六一维数组.doc

上传人:hs****ma 文档编号:562706523 上传时间:2022-10-30 格式:DOC 页数:3 大小:20.50KB
返回 下载 相关 举报
C语言实验习题实验六一维数组.doc_第1页
第1页 / 共3页
C语言实验习题实验六一维数组.doc_第2页
第2页 / 共3页
C语言实验习题实验六一维数组.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《C语言实验习题实验六一维数组.doc》由会员分享,可在线阅读,更多相关《C语言实验习题实验六一维数组.doc(3页珍藏版)》请在金锄头文库上搜索。

1、实验六 一维数组【目的与要求】 1掌握一维数组的定义、赋值和输入输出的方法;2掌握字符数组的使用;3掌握与数组有关的算法(例如排序算法)。【上机内容】【一般示例】【例1】在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次序排列。分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,我们取出其中两种作为参考。方法一:起泡排序从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。源程序如下:#define N

2、10#includestdio.hmain()int aN,i,j,temp;printf(please input %d numbersn,N);for(i=0;iN;i+)scanf(%d,&ai);for(i=0;iN-1;i+)for(j=0;jaj+1)temp=aj;aj=aj+1;aj+1=temp;printf(the array after sort:n);for(i=0;iN;i+)printf(%5d,ai);方法二:选择排序首先找出值最小的数,然后把这个数与第一个数交换,这样值最小的数就放到了第一个位置;然后,在从剩下的数中找值最小的,把它和第二个数互换,使得第二小的数

3、放在第二个位置上。以此类推,直到所有的值从小到大的顺序排列为止。#includestdio.h#define N 10main()int aN,i,j,r,temp;printf(please input %d numbersn,N);for(i=0;iN;i+)scanf(%d,&ai);for(i=0;iN-1;i+) r=i;for(j=i+1;jN;j+)if(ajar)r=j;if(r!=i)temp=ar;ar=ai;ai=temp;printf(the array after sort:n);for(i=0;iN;i+)printf(%5d,ai);printf(n);【例2】青

4、年歌手参加歌曲大奖赛,有10个评委对她的进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。分析:这道题的核心是排序。将评委所打的10个分数利用数组按增序(或降序)排列,计算数组中除第一个和最后一个分数以外的数的平均分,其中排序部分这里用选择法实现。main()int i,j,min;float temp,ave=0;float a11;printf(n输入评委所打的分数:n);for(i=1;i=10;i+)scanf(%f,&ai);for(i=1;i=9;i+)min=i;for(j=i+1;jaj)min=j;temp=ai;ai=amin;amin=temp;for(

5、i=2;i=9;i+) /*注意i值的变化范围*/ave=ave+ai;printf(选手所得最后分数:%6.1f,ave/8);printf(n);【例3】输入一串字符,计算其中空格的个数。#include main( )char c30;int i,sum=0;gets(c);for(i=0;istrlen(c);i+)if(ci= )sum=sum+1;printf(空格数为:%d n,sum);【作业】1 已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。2 将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。3 有15个数按由小到大顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则打印出“无此数”。4 编一程序,将两个字符串连接起来,不要用strcat函数。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号