c++中怎么将数组里的数随机排序?

同题... 同题 展开
 我来答
一骑当后
推荐于2017-09-26 · 知道合伙人数码行家
一骑当后
知道合伙人数码行家
采纳数:40299 获赞数:306424
网络、设备维护、电路、弱电检测。

向TA提问 私信TA
展开全部

  c++中将数组里的数随机排序,参考代码如下:

#include "stdlib.h"
#include "stdio.h"

main()
{
    int i,j,k,a[10000],b[10000],n,t;
    printf("please input the number of integer: ");
    scanf("%d",&n);

for(i = 0; i < n; i++)
    {
        a[i] = random(80) + 20;          /*生成数组*/
    }

for(i = 0;i < n;i++)             /*初始化元素数量*/
        b[i] = 1;

for(i = 0; i < n; i++)
    {
        for(j = i + 1;j < n;j++)
        {
            if(a[i] == a[j])
            {
                b[i]++;                 /*计数*/
                n--;

                for(k = j;k < n;k++)     /*去掉数组中重复值*/
                    a[k] = a[k + 1];
 
               j--;
            }
        }
    }

for(i = 1;i < n;i++)                                        /*升序排序*/
         for(j = 0;j < n - i;j++)
            if(a[j] > a[j+1])
            {
                t = a[j];a[j] = a[j + 1];a[j + 1] = t;
                t = b[j];b[j] = b[j + 1];b[j + 1] = t;
            }

printf("\n  Integer      numbers\n");
    for(i = 0;i < n;i++)                                 /*输出*/
    {
        printf("    %d             %d\n",a[i],b[i]);
    }
    getch();
}
花香天地
2010-11-03 · TA获得超过342个赞
知道小有建树答主
回答量:137
采纳率:100%
帮助的人:112万
展开全部
比如说数组{2,3,4,65,54,342,657,5768,45342,45656,},就是让他们随机全部显示出来

#include "stdlib.h"//malloc,free
#include <time.h>//srand

unsigned int _random;

srand( (unsigned)time( NULL ) );
_random=rand()+100;
_random=_random%10+1;

//_random就是1~10的随机数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大二的猴
2010-11-03
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
如果数组已有数,要随机打乱顺序:
i = rand()% Array_Size;//随即数组中的俩个位置
j = rand()% Array_Size;
t = a[i];//交换
a[i] = a[j];
a[j] = t;

多执行几次就打乱了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0浮云追月0
2010-11-16 · TA获得超过266个赞
知道小有建树答主
回答量:159
采纳率:100%
帮助的人:99.6万
展开全部
昨天面试了一家公司,也是个排序题,网上很多答案都编译不了,今天把代码写出来供你参考下:
#include <iostream.h>
void sort(int a[],int n);

int main()
{
int array[]={45,56,76,234,1,34,23,2,3};
sort(array,sizeof(array)/sizeof(array[0]));
return 0;
}
void sort(int a[],int n)
{
int temp;
for (int i=0;i<n;i++)
{
for (int j=i+1;j<n;j++)
{
if (a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
cout << a[i] << endl;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我什麽什也沒看
推荐于2017-09-25 · TA获得超过8634个赞
知道大有可为答主
回答量:1721
采纳率:0%
帮助的人:3661万
展开全部
把你的输出改下。
int main()
{
int a[5]={1,5,3,2,4};
int i,j,t;
for(i=0;i5;i++)
for(j=i+1;j5;j++)
{
if(a[i]a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
for(i=0;i5;i++)
couta[i]"\n";
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式