C语言的一道题目?

随机产生50个0~100之间的整数,输入两个整数m和n(0<=m<n<50),将m和n之间的整数按从小到大的顺序进行排序,并输出排序前和排序后的所有数据。(要求分别用冒泡... 随机产生50个 0~100之间的整数,输入两个整数m和n (0 <= m < n < 50),将m和n之间的整数按从小到大的顺序进行排序,并输出排序前和排序后的所有数据。(要求分别用冒泡排序和选择排序,本题相当于2题)
#include
srand(0);
a[i]=rand%101;
展开
 我来答
小黑哎啊
科技发烧友

2020-02-22 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:1642
采纳率:74%
帮助的人:344万
展开全部

#include<stdio.h>

#include<stdlib.h>//头文件 

#include <time.h>//头文件 

int main()

{

int a[111],b[100],c[111],n,m,k=0,t,l=0,s;

scanf("%d%d",&n,&m);

    srand((unsigned)time(NULL));//srand()就是给rand()提供种子

    for(int i=0;i<50;i++)

    {

        a[i]=rand()%101;//对101取余; 

    }

for(int i=0;i<50;i++)

{

if(a[i]>n&&a[i]<=m)

{

c[l++]=a[i];//这个供冒泡排序用; 

b[k++]=a[i];//这个供选择排序用; 

printf("%d ",a[i]);//未排序前的序列; 

}

printf("\n");

for(int i=0;i<k-1;i++)//选择排序 

{

for(int j=i+1;j<k;j++)

{

if(b[i]>b[j])

{

t=b[i];

b[i]=b[j];

b[j]=t;

}

}

}

for(int i=0;i<l;i++)//冒泡排序 

{

for(int j=0;j<l-i-1;j++)

{

if(c[j]>c[j+1])

{

s=c[j];

c[j]=c[j+1];

c[j+1]=s;

}

}

}

for(int i=0;i<k;i++)

{

printf("%d ",b[i]);

}

printf("\n");

for(int i=0;i<l;i++)

{

printf("%d ",c[i]);

    return 0;

}

根据你给的信息,代码大致就是这样;可能有些瑕疵,你再根据原题修改一下;希望能帮到你,望采纳;

智墨同绿蕊
2020-03-02 · TA获得超过3684个赞
知道小有建树答主
回答量:3076
采纳率:27%
帮助的人:215万
展开全部
不知道题目如何要求的。
建议边建立链表边排序。
一开始只有一个头结点,每加入一个同学的名字就把结点插入到合适的位置。
类似于插入排序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式