用C语言对数组内元素乱序排列并输出
现在有一个数组,数组内存放8个short型元素,比如{1,3,9,6,10,4,28,51}现在想把这八个数据随机排列并输出所有排列结果,那么就应该有2^8=32个结果输...
现在有一个数组,数组内存放8个short型元素,比如{1,3,9,6,10,4,28,51}
现在想把这八个数据随机排列并输出所有排列结果,那么就应该有2^8=32个结果输出。
我想问一下怎么可以实现这个程序。注意:数组内元素数据是开始就定好的,不能使用random()去随机产生
谢谢~~
问题解决会继续+分
8!个输出。。我错了。。
求完整源代码。。 展开
现在想把这八个数据随机排列并输出所有排列结果,那么就应该有2^8=32个结果输出。
我想问一下怎么可以实现这个程序。注意:数组内元素数据是开始就定好的,不能使用random()去随机产生
谢谢~~
问题解决会继续+分
8!个输出。。我错了。。
求完整源代码。。 展开
4个回答
展开全部
#include<stdio.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;i<8;i++)
for(j=0;j<8;j++)
if(j!=i)
for(k=0;k<8;k++)
if((k!=i)&&(k!=j))
for(l=0;l<8;l++)
if((l!=i)&&(l!=j)&&(l!=k))
for(m=0;m<8;m++)
if((m!=i)&&(m!=j)&&(m!=k)&&(m!=l))
for(n=0;n<8;n++)
if((n!=i)&&(n!=j)&&(n!=k)&&(n!=l)&&(n!=m))
for(x=0;x<8;x++)
if((x!=i)&&(x!=j)&&(x!=k)&&(x!=l)&&(x!=m)&&(x!=n))
for(y=0;y<8;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\n",a[i],a[j],a[k],a[l],a[m],a[n],a[x],a[y]);
}
printf("%d\n",xx);
}
方法其实很简单,多动脑多写
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;i<8;i++)
for(j=0;j<8;j++)
if(j!=i)
for(k=0;k<8;k++)
if((k!=i)&&(k!=j))
for(l=0;l<8;l++)
if((l!=i)&&(l!=j)&&(l!=k))
for(m=0;m<8;m++)
if((m!=i)&&(m!=j)&&(m!=k)&&(m!=l))
for(n=0;n<8;n++)
if((n!=i)&&(n!=j)&&(n!=k)&&(n!=l)&&(n!=m))
for(x=0;x<8;x++)
if((x!=i)&&(x!=j)&&(x!=k)&&(x!=l)&&(x!=m)&&(x!=n))
for(y=0;y<8;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\n",a[i],a[j],a[k],a[l],a[m],a[n],a[x],a[y]);
}
printf("%d\n",xx);
}
方法其实很简单,多动脑多写
展开全部
方法1:比较笨的办法是先排好。再在里面找。看是原来的第几个。 (代码我就不写了。)
方法2:有一个很快的方法,就是用快速排序排,
如果你深入的了解了快排,那么这个就很简单了。而且效率很高。
我给你写代码。
方法2:有一个很快的方法,就是用快速排序排,
如果你深入的了解了快排,那么这个就很简单了。而且效率很高。
我给你写代码。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法1:比较笨的办法是先排好。再在里面找。看是原来的第几个。
(方法2:有一个很快的方法,就是用快速排序排,
如果你深入的了解了快排,那么这个就很简单了。而且效率很高。
(方法2:有一个很快的方法,就是用快速排序排,
如果你深入的了解了快排,那么这个就很简单了。而且效率很高。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询