zoukankan      html  css  js  c++  java
  • C语言之实现函数返回一个数组,以及选择排序,还有折半查找。这是同学的一个作业。。。

    作业的具体要求如下:

    编写一个完整的程序,实现如下功能。
    (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=0;i<N;i++)
    16     {
    17         m[i]=*a;
    18         a++;
    19     }
    20     a=sort(m);
    21     printf("
    排序结果:
    ");
    22     for(i=0;i<N;i++)
    23     {
    24         m[i]=*a;
    25         a++;
    26         printf("%d
    ",m[i]);
    27     }
    28 
    29     for(i=0;i<100;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=0,l=N;h<=l;)
    40     {
    41         i=(h+l)/2;
    42         if(c==m[i])
    43         {
    44             printf("是第%d个元素
    ",i+1);break;
    45         }
    46         else if(c>m[i])
    47         l=i-1;
    48         else if(c<m[i])
    49         h=i+1;
    50     }
    51     if(h>l)
    52       printf("无此元素");
    53     return 0;
    54 }
    55 int *sort(int m[])
    56 {
    57     int i,j;
    58     int index,temp;
    59     for ( i = 0; i < N - 1; i++)
    60     {
    61         temp = 0;
    62         index = i;
    63         for ( j = i + 1; 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个整数:
    ");
    79     static int m[N];
    80     int i;
    81     for(i=0;i<N;i++)
    82     {
    83         scanf("%d",&m[i]);
    84     }
    85     return m;
    86 }
  • 相关阅读:
    #include <utility>
    Html的空格显示
    ExtJs自学教程(1):一切从API開始
    天黑的时候,我又想起那首歌
    citrix协议ICA技术原理
    约瑟夫环问题
    数据结构和算法设计专题之---八大内部排序
    HDU
    深入分析C++引用
    八大排序算法总结
  • 原文地址:https://www.cnblogs.com/simuhunluo/p/5559998.html
Copyright © 2011-2022 走看看