作业的具体要求如下:

编写一个完整的程序,实现如下功能。
(1)    输入10个无序的整数。
(2)    用选择排序法将以上接收的10个无序整数按从大到小的顺序排序。
(3)    要求任意输入一个整数,用折半查找法从排好序的10个数中找出该数,若存在,在主函数中输出其所处的位置,否则,提示未找到。
提示:可定义input函数完成10个整数的输入,sort函数完成输入数的排序,search函数
完成输入数的査找功能。

下面是具体代码:(本人懒,没写注释,不过仔细看代码,还是很简单的)

  1. #include <stdio.h>
  2. #define N 10
  3.  
  4. // 13 34 3 15 26 18 19 14 30 24
  5.  
  6. int *input();
  7. int *sort(int m[]);
  8. void search(int m[],int c);
  9. main()
  10. {
  11. int *a;
  12. int i,k;
  13. int m[N];
  14. a=input();
  15. for(i=;i<N;i++)
  16. {
  17. m[i]=*a;
  18. a++;
  19. }
  20. a=sort(m);
  21. printf("\n排序结果:\n");
  22. for(i=;i<N;i++)
  23. {
  24. m[i]=*a;
  25. a++;
  26. printf("%d\n",m[i]);
  27. }
  28.  
  29. for(i=;i<;i++)
  30. { printf("请输入您想查找的数:");
  31. scanf("%d",&k);
  32. search(m,k);
  33. }
  34.  
  35. }
  36. void search(int m[],int c)
  37. {
  38. int h,l,i;
  39. for(h=,l=N;h<=l;)
  40. {
  41. i=(h+l)/;
  42. if(c==m[i])
  43. {
  44. printf("是第%d个元素\n",i+);break;
  45. }
  46. else if(c>m[i])
  47. l=i-;
  48. else if(c<m[i])
  49. h=i+;
  50. }
  51. if(h>l)
  52. printf("无此元素");
  53. return ;
  54. }
  55. int *sort(int m[])
  56. {
  57. int i,j;
  58. int index,temp;
  59. for ( i = ; i < N - ; i++)
  60. {
  61. temp = ;
  62. index = i;
  63. for ( j = i + ; j < N; j++)
  64. {
  65. if (m[index] < m[j])
  66. {
  67. index = j;
  68. }
  69. }
  70. temp = m[index];
  71. m[index] = m[i];
  72. m[i] = temp;
  73. }
  74. return m;
  75. }
  76. int *input()
  77. {
  78. printf("请输入10个整数:\n");
  79. static int m[N];
  80. int i;
  81. for(i=;i<N;i++)
  82. {
  83. scanf("%d",&m[i]);
  84. }
  85. return m;
  86. }

C语言之实现函数返回一个数组,以及选择排序,还有折半查找。这是同学的一个作业。。。的更多相关文章

  1. js实现随机选取[10,100)中的10个整数,存入一个数组,并排序。 另考虑(10,100]和[10,100]两种情况。

    1.js实现随机选取[10,100)中的10个整数,存入一个数组,并排序. <!DOCTYPE html> <html lang="en"> <hea ...

  2. 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝

    第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...

  3. 用C语言指针作为函数返回值

    转载:http://c.biancheng.net/cpp/html/3242.html C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数.下面的例子定义了一个函数 strlon ...

  4. C语言之冒泡排序、选择排序、折半查询、进制查表

    菜单导航 1.冒泡排序 2.选择排序 3.折半查询 4.进制查表(十进制转二进制.八进制.十六进制) 一.冒泡排序 //1.冒泡排序 /** 一组无序数字,进行从小到大排序 冒泡排序的过程:就是每个循 ...

  5. Java数组直接选择排序、sort()排序

    /** * 1.数组sort()排序 * 2.直接选择排序(两重for循环排序) */ import java.lang.*; import java.lang.reflect.Array; impo ...

  6. Java数组之选择排序

    选择排序 package com.kangkang.array; import java.util.Arrays; public class demo04 { public static void m ...

  7. 使用C语言中qsort()函数对浮点型数组无法成功排序的问题

    一 写在开头 1.1 本节内容 本节主要内容是有关C语言中qsort()函数的探讨. 二 问题和相应解决方法 qsort()是C标准库中的一个通用的排序函数.它既能对整型数据进行排序也能对浮点型数据进 ...

  8. 一个数组保存了N个结构,每个结构保存了一个坐标,结构间的坐标都不相同,请问如何找到指定坐标的结构(除了遍历整个数组,是否有更好的办法)?

    #include <iostream> #include <map> using namespace std; #define N 5 typedef struct point ...

  9. 用js实现随机选取10–100之间的10个数字,存入一个数组,并排序

    var iArray = []; function getRandom(istart, iend) { var iChoice = iend - istart + 1; //加1是为了取到100 va ...

随机推荐

  1. 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 ...

  2. Android四大核心组件之BroadCastReceiver

    实验内容 实现BroadCast发送和接受 通过BroadCast传递信息 动态注册和注销BroadCast 实验要求 实现BroadCast发送和接受 通过BroadCast传递信息 动态注册和注销 ...

  3. FusionChart 数据的传入方式

    已有案例,懒得写了,放个链接,大家看看吧.http://www.cnblogs.com/liujian21st/archive/2013/03/22/2975124.html

  4. iOS 如何在Label中显示html的文本

    if (self.messageModel) { NSString * htmlString = self.messageModel.contentText; NSAttributedString * ...

  5. Mysql如何向存在外键的数据表中插入数据

    1.创建表 CREATE TABLE `trn_comment_msg` ( `comMsgId` ) NOT NULL AUTO_INCREMENT COMMENT '评论消息主键', `msgId ...

  6. meta 标签的作用

    META标签,是HTML语言HEAD区的一个辅助性标签.在几乎所有的page里,我们都可以看到类似下面这段htm l代码: <head> <meta http-equiv=" ...

  7. final发布视频

    final版本发布的视频已上传至秒拍,视频地址: http://m.miaopai.com/show/channel/AHqv~VA7lrk144ONLWrveQ__ 以下是功能截图:         ...

  8. js'中的apply和call和bind的用法

    apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数obj:这个对象将代替Function类里this对象args:这 ...

  9. 提供一个表单,进行post数据处理

    var strContent = "aaaaa"; html.Append("<html><body><form id='postUploa ...

  10. Window Azure ServiceBus Messaging消息队列技术系列1-基本概念和架构

    前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型 ...