c 二維陣列排序問題,C 二維陣列sort函式排序問題

2021-12-22 18:26:08 字數 1393 閱讀 4646

1樓:匿名使用者

#include//寫的比較簡單,原理你應該都知道了,後面的,就是 開始做的那個沒刪

void main()

; for(i=0;i<12;i++) //冒泡

for(j=0;j<12;j++)

if(a[j/4][j%4]>a[(j+1)/4][(j+1)%4]) //看起來有點複雜,其實就是 12個數分成3行4列,對應的行數就是j/4,列數j%4,+1那個就是它下乙個數

for(i=0;i<3;i++) //列印

for(j=0;j<4;j++)

printf("%d\n",a[i][j]);

}//沒刪,以後有用的著的地方你可以再看看

#include

void sort(int *a,int x,int y) /*2維陣列排序函式,為了讓函式更通用,不止限於「三行四列」的二維陣列,傳入3個引數,a為陣列名,x行數,y列數*/ }

void printdata(int *a,int x,int y) //2維陣列的通用列印程式

void main() //主要拿來測試上面兩個函式

; int b[4][4]=;

sort((int*)a,3,4);

sort((int*)b,4,4);

printdata((int *)a,3,4);

printf("\nnext:\n");

printdata((int *)b,4,4);}

2樓:匿名使用者

你好,我先說一下演算法吧,先把二維陣列賦值到乙個一維陣列,然後利用for迴圈依次把第乙個數和其他數依次比較,每次比較把較大數放在後面,一次迴圈下來陣列中最大的數就在最後面了,做了(n-1)*(n -1)此比較換位後,陣列就是公升序陣列了,然後循序輸出陣列值就ok了。

#include

void main()

;int b[12];

n = 0;

for (i = 0; i < 3; i++)for (j = 0; j < 4; j++, n++)b[n] = a[i][j];

for (i = 0; i < 11; i++)}}for (n = 0; n < 12; n++)printf("%d,", b[n]);

printf("\n");}

3樓:_鈊_煩_薏亂

排序撒,排好序就可以了。

c++二維陣列sort函式排序問題

4樓:gta小雞

cmp是乙個自定義排序函式,它有兩個引數a和b,返回值為int型,為這兩個引數比較的結果。如果a>b,返回值大於0;如果a=b,返回值為0;如果aint cmp(int a, int b)

關於c語言二維陣列的問題,C語言中二維陣列的定義問題

a是乙個一維陣列,陣列裡的值是指標,指向的還是一維陣列。即等價於,int x 2 2,0 int y 2 4,8 int a 2 x,y 我想你應該知道答案了。c語言中二維陣列的定義問題 正確寫法如下 char fd jgf1 maxitemlen 1 說明 把null去掉 1.二維陣列的第乙個維度...

C語言二維陣列問題

a代表陣列的首位址,a 0 代表這個二維陣列第一行的首位址,雖然這兩個位址值是一樣的 int p a表示p是指向int型別的指標a是乙個二維陣列,其指標指向的是一維陣列,一維陣列才指向的是int,因此得用兩重指標表示 int p a int p 4 a 定義的是乙個有4個元素的int陣列的指標,而a...

c語言二維陣列a4中表示什麼,C語言二維陣列a4中,表示什麼

表示這是乙個二維陣列,第一維度上有4行,每行有 不確定的第二維度數值,具體理解 形如,a 0 0 a 0 1 a 0 2 a 0 x x大小未知 a 1 0 a 1 1,a 1 2 a 1 x a 2 0 a 2 1,a 2 2 a 1 x a 3 0 a 3 1,a 3 2 a 1 x 其中由於x...