您的位置:

求c语言二维数组元素排列组合,c语言数组二维数组

本文目录一览:

C语言 如何对二维数组进行按列排序?

无论是多少维的数组,机内都是一维的,以行优先存放。所以直接降为一维数组排序最方便省事。下面以二维数组为例写出代码——

#include "stdio.h"

int main(int argc,char *argv[]){

int x[3][3]={{9,4,3},{6,2,7},{5,8,1}},i,j,k,*p;

printf("Before ordering is as follows:\n");

for(i=0;i3;i++){

for(j=0;j3;printf("%2d",x[i][j++]));

printf("\n");

}

for(p=(int *)x,i=0;i9;i++){//用p=(int *)x将x降为一维数组p,选择法排序

for(k=i,j=k+1;j9;j++)

if(p[k]p[j])

k=j;

if(k!=i)

j=p[k],p[k]=p[i],p[i]=j;

}

printf("Sorted as follows:\n");

for(i=0;i3;i++){//输出排序后的二维数组

for(j=0;j3;printf("%2d",x[i][j++]));

printf("\n");

}

return 0;

}

运行结果:

C语言怎样对二维数组中每个元素进行选择排序

#include stdio.h

#include "stdlib.h"

#include "time.h"

int main(int argc,char *argv[]){

    int a[5][8],i,j,k,t,*p;

    printf("排序前:\n");

    srand((unsigned)time(NULL));

    for(i=0;i5;i++){//为二维数组赋值

        for(j=0;j8;printf("%3d",a[i][j++]=rand()%100));

        printf("\n");

    }

    printf("排序后:\n");

    p=(int *)a;//降为一维,这样排序简单

    for(t=i=0;i40;i++){//选择法排序

        for(k=i,j=k+1;j40;j++)

            if(p[k]p[j])

                k=j;

        if(k!=i)

            j=p[k],p[k]=p[i],p[i]=j;

        printf(++t%8 ? "%3d" : "%3d\n",p[i]);

    }

    return 0;

}

求C语言二维数组元素排列组合?

只是0,1还好办,要是0-9,或者更多数字就不好弄,

你这个其实跟数组是一维或者二维关系不大,3*3二维跟9个的一维,组合数结果是一样的

这个用到绑定插入法,先将少的数字绑定,3个0,3个相对6个少点,

1.先将3个0,看成一个整体。插入到6个1中间。共7种插法,

2.2个0看成一个整体,插入,7种,在插入另外一个0,这是个这个0不能查到0的前,或者后,会跟之前的重复,6种,6*7=42种插法,

3.分开插,0不能相邻,101010/010101整体,向剩下的111里面查去,共2*4=8种

C语言 二位数组的排列组合问题

我下面的这个可以用于任何大小的二维数组,但有一点不好:元素不能包含0,我再改改,你看看吧:

#include stdio.h

#define ONE 4//想改变数组大小,改变这儿就行了

#define TWO 8//想改变数组大小,改变这儿就行了

int num[4];

void work(int a[ONE][TWO],int x)

{

int k;

if(x==ONE)

{

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

printf("%d\t",num[k]);

printf("\n");

}

else

{

for(k=0;*(*(a+x)+k);k++)//我这儿是以0做为结束的,所以这有点局限,

{

num[x]=*(*(a+x)+k);

work(a,x+1);//递归实现

}

}

}

int main()

{

int a[ONE][TWO]={{1,5,8},{2,9},{3,6,4},{7,10}};//由于我是以0为判断结束,所以里面不能有0,我再改改

work(a,0);//调用这个函数

return 0;

}

想了一下,如果数组是字符型的就可以:char a[ONE][TWO]={{'1','5','8'},{'2','9'},{'3','6','4'},{'7','0'}};

求c语言二维数组元素排列组合,c语言数组二维数组

2022-11-26
c语言数组二维数组正确,c语言二维数组详解

2022-11-27
c语言二维数组,c语言二维数组初始化

本文目录一览: 1、c语言二维数组 2、c语言中什么是二维数组 3、c语言中的二维数组? c语言二维数组 这个就是指针数组和数组指针的区别了,我当年也在这里转了很久,希望我下面所说得可以帮到你。首先,

2023-12-08
c语言二维数组的本质,在c语言中一维数组

2023-01-04
c语言二维数组用法,C语言 二维数组

2022-11-24
c语言二维数组插值查询,c语言二维数组查找

2023-01-06
c语言二维数组进入函数,c语言怎么返回二维数组

2023-01-04
c语言二维数组大小排序,C语言数组大小排序

2022-11-26
c语言编程二维数组,c语言二维数组程序

2022-11-22
c语言二维数组表示形式,c语言二维数组表示形式有哪些

2022-11-23
c语言二维数组行列的长度,C#二维数组长度

2022-11-25
c语言二维数组所有元素之和,c++求二维数组周边元素之和

2022-11-28
c语言二维数组移动,c语言数组的移动

2022-11-25
c语言实现两个二维数组相加,c语言两个二维数组元素相加

2023-01-04
c语言计算二维数组的行数,c语言如何计算二维数组长度

2022-11-24
c语言二维数组输出图像,c语言二维字符数组输出

2022-11-30
c语言二维数组for循环,c语言二维数组循环赋值

2022-11-25
c语言二维数组设计平面图形,C语言3×3二维数组

2022-11-28
c语言获取二维数组的行数和列数,c#获取二维数组的行列数

2022-11-23
二维数组置零c语言文档介绍内容,二维数组定义c语言

2022-11-29