C语言之实现函数返回一个数组,以及选择排序,还有折半查找。这是同学的一个作业。。。
作业的具体要求如下:
编写一个完整的程序,实现如下功能。
(1) 输入10个无序的整数。
(2) 用选择排序法将以上接收的10个无序整数按从大到小的顺序排序。
(3) 要求任意输入一个整数,用折半查找法从排好序的10个数中找出该数,若存在,在主函数中输出其所处的位置,否则,提示未找到。
提示:可定义input函数完成10个整数的输入,sort函数完成输入数的排序,search函数
完成输入数的査找功能。
下面是具体代码:(本人懒,没写注释,不过仔细看代码,还是很简单的)
- #include <stdio.h>
- #define N 10
- // 13 34 3 15 26 18 19 14 30 24
- int *input();
- int *sort(int m[]);
- void search(int m[],int c);
- main()
- {
- int *a;
- int i,k;
- int m[N];
- a=input();
- for(i=;i<N;i++)
- {
- m[i]=*a;
- a++;
- }
- a=sort(m);
- printf("\n排序结果:\n");
- for(i=;i<N;i++)
- {
- m[i]=*a;
- a++;
- printf("%d\n",m[i]);
- }
- for(i=;i<;i++)
- { printf("请输入您想查找的数:");
- scanf("%d",&k);
- search(m,k);
- }
- }
- void search(int m[],int c)
- {
- int h,l,i;
- for(h=,l=N;h<=l;)
- {
- i=(h+l)/;
- if(c==m[i])
- {
- printf("是第%d个元素\n",i+);break;
- }
- else if(c>m[i])
- l=i-;
- else if(c<m[i])
- h=i+;
- }
- if(h>l)
- printf("无此元素");
- return ;
- }
- int *sort(int m[])
- {
- int i,j;
- int index,temp;
- for ( i = ; i < N - ; i++)
- {
- temp = ;
- index = i;
- for ( j = i + ; j < N; j++)
- {
- if (m[index] < m[j])
- {
- index = j;
- }
- }
- temp = m[index];
- m[index] = m[i];
- m[i] = temp;
- }
- return m;
- }
- int *input()
- {
- printf("请输入10个整数:\n");
- static int m[N];
- int i;
- for(i=;i<N;i++)
- {
- scanf("%d",&m[i]);
- }
- return m;
- }
C语言之实现函数返回一个数组,以及选择排序,还有折半查找。这是同学的一个作业。。。的更多相关文章
- js实现随机选取[10,100)中的10个整数,存入一个数组,并排序。 另考虑(10,100]和[10,100]两种情况。
1.js实现随机选取[10,100)中的10个整数,存入一个数组,并排序. <!DOCTYPE html> <html lang="en"> <hea ...
- 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝
第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...
- 用C语言指针作为函数返回值
转载:http://c.biancheng.net/cpp/html/3242.html C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数.下面的例子定义了一个函数 strlon ...
- C语言之冒泡排序、选择排序、折半查询、进制查表
菜单导航 1.冒泡排序 2.选择排序 3.折半查询 4.进制查表(十进制转二进制.八进制.十六进制) 一.冒泡排序 //1.冒泡排序 /** 一组无序数字,进行从小到大排序 冒泡排序的过程:就是每个循 ...
- Java数组直接选择排序、sort()排序
/** * 1.数组sort()排序 * 2.直接选择排序(两重for循环排序) */ import java.lang.*; import java.lang.reflect.Array; impo ...
- Java数组之选择排序
选择排序 package com.kangkang.array; import java.util.Arrays; public class demo04 { public static void m ...
- 使用C语言中qsort()函数对浮点型数组无法成功排序的问题
一 写在开头 1.1 本节内容 本节主要内容是有关C语言中qsort()函数的探讨. 二 问题和相应解决方法 qsort()是C标准库中的一个通用的排序函数.它既能对整型数据进行排序也能对浮点型数据进 ...
- 一个数组保存了N个结构,每个结构保存了一个坐标,结构间的坐标都不相同,请问如何找到指定坐标的结构(除了遍历整个数组,是否有更好的办法)?
#include <iostream> #include <map> using namespace std; #define N 5 typedef struct point ...
- 用js实现随机选取10–100之间的10个数字,存入一个数组,并排序
var iArray = []; function getRandom(istart, iend) { var iChoice = iend - istart + 1; //加1是为了取到100 va ...
随机推荐
- jQuery 跨域访问的三种方式 No 'Access-Control-Allow-Origin' header is present on the reque
问题: XMLHttpRequest cannot load http://v.xxx.com. No 'Access-Control-Allow-Origin' header is present ...
- Android四大核心组件之BroadCastReceiver
实验内容 实现BroadCast发送和接受 通过BroadCast传递信息 动态注册和注销BroadCast 实验要求 实现BroadCast发送和接受 通过BroadCast传递信息 动态注册和注销 ...
- FusionChart 数据的传入方式
已有案例,懒得写了,放个链接,大家看看吧.http://www.cnblogs.com/liujian21st/archive/2013/03/22/2975124.html
- iOS 如何在Label中显示html的文本
if (self.messageModel) { NSString * htmlString = self.messageModel.contentText; NSAttributedString * ...
- Mysql如何向存在外键的数据表中插入数据
1.创建表 CREATE TABLE `trn_comment_msg` ( `comMsgId` ) NOT NULL AUTO_INCREMENT COMMENT '评论消息主键', `msgId ...
- meta 标签的作用
META标签,是HTML语言HEAD区的一个辅助性标签.在几乎所有的page里,我们都可以看到类似下面这段htm l代码: <head> <meta http-equiv=" ...
- final发布视频
final版本发布的视频已上传至秒拍,视频地址: http://m.miaopai.com/show/channel/AHqv~VA7lrk144ONLWrveQ__ 以下是功能截图: ...
- js'中的apply和call和bind的用法
apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数obj:这个对象将代替Function类里this对象args:这 ...
- 提供一个表单,进行post数据处理
var strContent = "aaaaa"; html.Append("<html><body><form id='postUploa ...
- Window Azure ServiceBus Messaging消息队列技术系列1-基本概念和架构
前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型 ...