求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’}};

原創文章,作者:XSRN,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/148115.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
XSRN的頭像XSRN
上一篇 2024-11-02 13:14
下一篇 2024-11-02 13:14

相關推薦

  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python遍歷集合中的元素

    本文將從多個方面詳細闡述Python遍歷集合中的元素方法。 一、for循環遍歷集合 Python中,使用for循環可以遍歷集合中的每個元素,代碼如下: my_set = {1, 2…

    編程 2025-04-29
  • Python去掉數組的中括號

    在Python中,被中括號包裹的數據結構是列表,列表是Python中非常常見的數據類型之一。但是,有些時候我們需要將列表展開成一維的數組,並且去掉中括號。本文將為大家詳細介紹如何用…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python列表中大於某數的元素處理方法

    本文將會介紹如何在Python列表中找到大於某數的元素,並對其進行進一步的處理。 一、查找大於某數的元素 要查找Python列表中大於某數的元素,可以使用列表推導式進行處理。 nu…

    編程 2025-04-29
  • Python Set元素用法介紹

    Set是Python編程語言中擁有一系列獨特屬性及特點的數據類型之一。它可以存儲無序且唯一的數據元素,這使得Set在數據處理中非常有用。Set能夠進行交、並、差集等操作,也可以用於…

    編程 2025-04-29

發表回復

登錄後才能評論