| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 435 人关注过本帖
标题:m开始的n个数排序
只看楼主 加入收藏
镰刀先生
Rank: 2
等 级:论坛游民
帖 子:20
专家分:10
注 册:2015-4-19
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:8 
m开始的n个数排序
编一个函数,实现从第m个数开始的n个数的升序(用选择或冒泡都可以啦),谢谢谢谢啦。。给出的数用rand函数随机给出。
2015-05-08 13:28
镰刀先生
Rank: 2
等 级:论坛游民
帖 子:20
专家分:10
注 册:2015-4-19
收藏
得分:0 
求大神,
2015-05-08 13:29
镰刀先生
Rank: 2
等 级:论坛游民
帖 子:20
专家分:10
注 册:2015-4-19
收藏
得分:0 
来人帮忙啊,,,,
2015-05-08 16:13
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:0 
冒泡排序论坛已搜一大堆。里面加上个rand()函数不就ok了吗?

风回小院庭芜绿,柳眼春相续
2015-05-08 20:23
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:5 
void sort(int a[],int m,int n)   //将a[m]开始的n个元素按升序排序
{
    int i,j,k,t;
    for(i=m;i<m+n-1;i++)
    {
       k=i;
       for(j=i+1;j<m+n;j++)
          if(a[j]<a[i])
             k=j;
        t=a[i];
        a[i]=a[k];
        a[k]=t;
    }
}
2015-05-09 21:25
镰刀先生
Rank: 2
等 级:论坛游民
帖 子:20
专家分:10
注 册:2015-4-19
收藏
得分:0 
回复 4楼 纳兰伽香
rand没学过,但是老师就让用了。。
2015-05-10 11:57
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用镰刀先生在2015-5-10 11:57:11的发言:

rand没学过,但是老师就让用了。。



这和学没学过有一毛关系

DO IT YOURSELF !
2015-05-10 12:10
镰刀先生
Rank: 2
等 级:论坛游民
帖 子:20
专家分:10
注 册:2015-4-19
收藏
得分:0 
回复 7楼 wp231957
直接用?
2015-05-10 12:12
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:15 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
    srand((unsigned)time(NULL));
    int m=0;
    printf("请输入M个整数中的M是:");
    scanf("%d",&m);
    int* p;
    p=(int*)malloc(m*sizeof(int));  //因不知生成的数据量 所以不能类似int a[n]的声明
    int n=0;
    int i=0;
    int j=0;
    int t=0;
    for(;i<m;i++)
    {
        *(p+i)=rand();
    }
    printf("原始数据是:\n");
    i=0;
    for(;i<m;i++)
    {
        printf("%d ",*(p+i));
    }
    printf("请输入中断数据中的m,n: 数据范围应该在1--%d之间",m);
    int x,y;
    scanf("%d%d",&x,&y);
    //对于随机生成的数据 按照指定的中断范围 进行排序
    for(i=x-1;i<x+y-1;i++)
    {
        for(j=i;j<x+y-1;j++)
        {
            if(*(p+i)>*(p+j))
            {
                t=*(p+i);
                *(p+i)=*(p+j);
                *(p+j)=t;
            }
        }
    }

    //对所有数据进行输出
    i=0;
    for(;i<m;i++)
    {
        printf("%d ",*(p+i));
    }
    free(p);
    return 0;
}

DO IT YOURSELF !
2015-05-10 12:41
快速回复:m开始的n个数排序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058531 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved