c语言数组乱序

今天,嗨壳技术分享网给大家整理一些c语言数组乱序内容。

  C语言中如何将数组乱序

  可以这样:

  srand(time(0));

  for(i=0;iN;i++)

  {

  m=rand()%9;

  n=rand()%9;

  t=a[m];

  a[m]=a[n];

  a[n]=t;

  }

  就是每次生成两个0到8之间的随机数,然后以它们作为下标,交换两个位置的数字,只要N足够大,应该能够达到要求

  C语言删除数组中的最小值(不唯一),数组是乱序的?

  下面是数组中删除最小值的oj代码:

  #include stdio.h

  int main()

  {

  int i,N,min,a[1016];

  scanf(“%d”,N);

  for(i=0;iN;i++)

  {

  scanf(“%d”,a[i]);

  if(a[i]min||!i) min=a[i];

  }

  for(i=0;iN;i++)

  if(a[i]!=min) printf(“%d

  ”,a[i])

  return 0;

  }

  怎样用C语言打乱一个已排序的数组

  //使用随机数交换的形式打乱数组。随机生成一个随机数组下表,然后进行交换,达到打乱的目的。

  #include stdio.h

  #include iostream

  #includestdlib.h

  #includetime.h

  using namespace std;

  int main()

  {

  int a[10];

  for(int i=0;i10;i++)

  {

  a[i]=i+1;

  }

  printf(“顺序输出:”);

  for(int i=0;i10;i++)

  {

  printf(“%d “,a[i]);

  }

  srand((int)time(NULL));

  for(int i=0;i10;i++)

  {

  swap(a[i],a[rand()%10]);

  }

  printf(“

  打乱顺序后:”);

  for(int i=0;i10;i++)

  {

  printf(“%d “,a[i]);

  }

  //system(“pause”);

  }

  c语言如何随机打乱数组

  int a[] = {3,5,7,1,4};

  // 本程序考虑时间复杂度最小情况的乱序算法,O(t)=len-1

  // 算法模仿彩票摇号,从全集中先取一个为第一位,再在剩余集合中取出一个为第2位,…

  // 直至最后一个,只是考虑空间利用,已排序集合利用全集的空间。

  int len=sizeof(a); // 全集元素数量

  srand(unsigned(time(NULL))); // 摇号机准备

  for(int i=len;i1;i–) // 从全集开始摇号,直至只剩一个,已排在最后

  {

  int cur=len-i+(rand()%i); // 在剩余集合中摇号

  int tmp=a[len-i]; // 当前序号位置挪空

  a[len-i]=a[cur]; // 摇出的彩球放入当前序号

  a[lcur]=tmp; // 放好剩余的彩球

  }

  用C语言对数组内元素乱序排列并输出

  #includestdio.h

  int main()

  {

  int xx=0;

  int a[8]={1,3,9,6,10,4,28,51};

  int i,j,k,l,m,n,x,y;

  for(i=0;i8;i++)

  for(j=0;j8;j++)

  if(j!=i)

  for(k=0;k8;k++)

  if((k!=i)(k!=j))

  for(l=0;l8;l++)

  if((l!=i)(l!=j)(l!=k))

  for(m=0;m8;m++)

  if((m!=i)(m!=j)(m!=k)(m!=l))

  for(n=0;n8;n++)

  if((n!=i)(n!=j)(n!=k)(n!=l)(n!=m))

  for(x=0;x8;x++)

  if((x!=i)(x!=j)(x!=k)(x!=l)(x!=m)(x!=n))

  for(y=0;y8;y++)

  if((y!=i)(y!=j)(y!=k)(y!=l)(y!=m)(y!=n)(y!=x))

  {

  xx++;

  printf(“%d %d %d %d %d %d %d %d

  ”,a[i],a[j],a[k],a[l],a[m],a[n],a[x],a[y]);

  }

  printf(“%d

  ”,xx);

  }

  方法其实很简单,多动脑多写

  用C语言怎样打乱一组数据?

  #pragma once

  #include iostream

  #include Windows.h

  using namespace std;

  #pragma comment( lib, “winmm.lib” )

  int main()

  {

  //定义一个数组(自己随便定义,这里以10个大小的数组为例)

  const int iSum = 10;

  int iAry[iSum] = {3,7,5,87,23,1,65,8,51,64};

  //定义一个数组用来保存打乱顺序后的数

  int iDistrubAry[iSum] = {0};

  //播随机种子(以便每次随机的值有相等的机会)

  srand(timeGetTime());

  //每次随机的不相同的数存到这个数组里(以便下次随机时判断随机的数是否已经随机过了)

  int iRandomData[iSum] = {0};

  //将iRandomData元数都赋初值为-1,表示没有产生一个随机数

  for ( int i=0; iiSum; i++ )

  {

  iRandomData[i] = -1;

  }

  //共产生不同的随机的个数

  int iRandomSum = 0;

  //打乱这个数组

  for ( int i=0; iiSum; i++ )

  {

  //随机一个数

  int iRandom = rand()%iSum;

  //判断iRandomSum是否为0,是0的话表示没有随机过任何数,就不用查询是否随机到这个数了

  if ( iRandomSum != 0 )

  {

  //用来判断是否连续随机(当随机的数与之前随机的有重复时就连续随机)

  for ( int i=0; iiRandomSum; i++ )

  {

  if ( iRandom == iRandomData[i] )

  {

  iRandom = rand()%iSum;

  //i要赋值为-1,表示重新查询是否与以前随机的数重复

  i = -1;

  }

  }

  }

  //将产生的随机数添加到RandomData里面

  iRandomData[iRandomSum] = iRandom;

  //将随机的数作为原来数组的索引,取出原来数组此索引的值保存在打乱后的数组中

  iDistrubAry[iRandomSum] = iAry[iRandom];

  //将iRandom加1,表明已经打乱好了一个数

  iRandomSum++;

  }

  //显示未打乱的数组

  cout”未打乱的数组:”;

  for ( int i=0; iiSum; i++ )

  {

  coutiAry[i]” “;

  }

  coutendl;

  //显示打乱后的数组

  cout”打乱后的数组:”;

  for ( int i=0; iiSum; i++ )

  {

  coutiDistrubAry[i]” “;

  }

  coutendl;

c语言数组乱序

  system( “pause” );

  }

以上【 c语言数组乱序 】是嗨壳技术分享网(www.heikehao.com)编辑整理。嗨壳技术分享网包含技术投稿、C语言、Excel、Java、Linux、网络安全和账号安全等丰富的栏目,并分享一些互联网安全技术知识和安全防护经验,帮助网友注重网络安全,让网络安全不再是问题。

原创文章,作者:语言我知,如若转载,请注明出处:https://www.heikehao.com/11090.html

(0)
语言我知语言我知
上一篇 2020年5月10日
下一篇 2020年5月10日

相关推荐

  • 程序设计c语言位域

    关于程序设计c语言位域话题,今日,嗨壳技术分享网小编抽出大半天的时间整理一些程序设计c语言位域内容,让我们一起了解一些技术吧!   c语言 位域长度   这个主要还是要看编译器以及…

    2020年2月14日
  • c语言输出覆盖(c语言覆盖怎么关掉)

    关于c语言输出覆盖(c语言覆盖怎么关掉)话题,今日,嗨壳技术分享网小编抽出大半天的时间整理一些c语言输出覆盖(c语言覆盖怎么关掉)内容,让我们一起了解一些技术吧!   今天给各位分…

    2020年4月18日
  • 提升c语言能力,c语言总结提高

    关于提升c语言能力,c语言总结提高话题,今日,嗨壳技术分享网小编抽出大半天的时间整理一些提升c语言能力,c语言总结提高内容,让我们一起了解一些技术吧!   如何训练c语言的机考能力…

    2020年5月21日
  • 最小二乘曲线拟合c语言,最小二乘线性拟合曲线怎么求

    最小二乘曲线拟合c语言,最小二乘线性拟合曲线怎么求   用C语言进行最小二乘法拟合,这个代码错在哪   那你再输入1,2,3,4和2,4,6,8试试,说不定你理解有问题,a[0]是…

    2020年2月21日
  • c语言斐波那契数列

    斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,…

    C语言 2023年12月4日
  • 底层c语言编程标准(编程语言底层都是c语言)

    今日,嗨壳技术分享网小编分享底层c语言编程标准(编程语言底层都是c语言) 相关内容,内容如下。   本篇文章给大家谈谈底层c语言编程标准,以及编程语言底层都是c语言对应的知识点,希…

    2020年5月10日
  • 随便指定数组大小可以吗c语言,c语言如何给数组定范围

    今天,嗨壳技术分享网给大家整理一些随便指定数组大小可以吗c语言,c语言如何给数组定范围内容。   C语言里函数里定义的数组的大小不可以由函数来的参数确定吗?   1、C语言里数组的…

    2020年1月3日
  • c语言循环语句例题

    关于c语言循环语句例题话题,今日,嗨壳技术分享网小编抽出大半天的时间整理一些c语言循环语句例题内容,让我们一起了解一些技术吧!   一个c语言中for循环的例题   c语言中的fo…

    2020年2月19日
  • 树莓派控制led灯c语言

    树莓派控制led灯c语言   树莓派可以用c语言吗   树莓派可以用c#。由于电视连接的有机顶盒,所以我们要先开机打开电视,然后手动调节按键进入hdmi信号模式,插上树莓派电源,等…

    2020年3月10日
  • c语言bit

    今天,嗨壳技术分享网给大家整理一些c语言bit内容。   bit用法——单片机C语言   1、bit Timerout=0; 这里的bit本质上和char、int一样的(功能一样,…

    2020年9月5日