二維陣列行排序
二維陣列行排序(由小到大)
輸入4*4的矩陣(4*4矩陣只是隨手的巨集定義需要幾行幾列的資料可以自行對程式稍加修改),
也就是鍵盤輸入16個數給陣列a[4][4]賦值,然後對這個陣列以每一行為一個單位進行排序,排序規則如下:
兩單元對應元素位置一一比較,一旦遇到單元元素對應位置前者
比後者小則認定前單元比後單元小。列如
輸入:
1 1 5 3
1 1 2 3
1 2 1 1
2 0 1 5
輸出:
1 1 2 3
1 1 5 3
1 2 1 1
2 0 1 5
#include<stdio.h>
#include<math.h>
#include<malloc.h>
# define N 4
void swap(int a[],int b[]){//行單元元素對應比較,對應相同則一直比到結尾
int i; //對應位置前單元比後單元大則交換以後所有元素,小則退出迴圈不做處理
for(i=0;i<N;i++){
if(a[i]>b[i]){//一旦遇到前一個行的元素比下一行與之對應的元素大,自此元素往後全部元素對應交換
for(;i<N;i++){//迴圈交換剩餘元素
int temp=a[i];
a[i]=b[i];
b[i]=temp;
}
break;
}
if(a[i]<b[i])
break;
}
}
int main(){
int i,j,k;
int a[N][N];
//輸入資料
for(i=0;i<N;i++)
for(j=0;j<N;j++){
scanf("%d",&a[i][j]);
}
printf("\n");
int (*p)[N];//指向陣列a的陣列指標
p=a;
//把每一行資料看作一個單元 對每一個單元利用氣泡排序的思想進行由低到高排序
for(i=0;i<N-1;i++){
for(j=0;j<N-1-i;j++){
swap(*(p+j),*(p+j+1));//一個單後設資料和下一個單後設資料進行比較並交換(一行和下一行進行比較並交換)
}
}
//資料列印
for(i=0;i<N;i++){
for(j=0;j<N;j++)
printf("%d ",*(*(p+i)+j));
printf("\n");
}
return 0;
}
相關文章
- 二維陣列排序陣列排序
- php 二維陣列排序PHP陣列排序
- 二維陣列根據欄位進行排序陣列排序
- 二維陣列根據鍵的值進行排序陣列排序
- 多維陣列排序陣列排序
- 二維陣列排序函式array_multisort()陣列排序函式
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- 二維陣列每行分別進行從小到大排序輸出陣列排序
- 二維陣列根據某個欄位排序陣列排序
- PHP 多維陣列排序PHP陣列排序
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- 二維陣列陣列
- PHP 二維陣列, 按某一個欄位排序PHP陣列排序
- 多維陣列按鍵名進行重新排序陣列排序
- PHP中二維陣列與多維陣列PHP陣列
- 二位陣列排序陣列排序
- Java二維陣列Java陣列
- vector 二維陣列陣列
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- 二維陣列和稀疏陣列互轉陣列
- C/C++ 二維陣列的理解(多維陣列)C++陣列
- 二維陣列查詢陣列
- 二維樹狀陣列陣列
- 二維陣列練習陣列
- Java 二維陣列轉一維Java陣列
- 指標陣列和陣列指標與二維陣列指標陣列
- 陣列進行排序的方法陣列排序
- 7-蛇形二維陣列陣列
- JAVA基礎--二維陣列Java陣列
- 二維陣列的獲取陣列
- Kotlin建立二維Int陣列Kotlin陣列
- 二維陣列與指標陣列指標
- 求二維陣列中最大子陣列的和陣列
- 陣列排序陣列排序
- 一行程式碼實現陣列降維去重排序行程陣列排序
- Java 學習筆記 二維陣列和物件陣列Java筆記陣列物件
- 二維陣列JSON.stringify 後,第二層陣列解析為空陣列JSON