先看程序的運行結果,看是不是妳需要的。
代碼如下,有不清楚的可以追問
#include?<stdio.h>#include?<stdlib.h>
#include?<string.h>
int?printArray(int?array[][2],?int?dim1,?int?dim2?);
int?swap(int?*a,?int?*b);
int?qsort(int?array[][2]);
int?main()
{
int?array[6][2]?=?{4,?9,?2,?6,?4,?5,?1,?2,?1,?7,?2,?4}; printf("排序前:\n"); printArray(array,?6,?2); qsort(array); printf("排序後:\n"); printArray(array,?6,?2); return?0;}
int?qsort(int?array[][2])
{
int?i?=?0; int?j?=?0; for(?i?=?0;?i?<?6;?i++) { for(j?=?i+1;?j?<?6;?j++) {if(*(*(array+i)+1)?>?*(*(array+j)+1))
{
swap(&*(*(array+i)+0),?&*(*(array+j)+0));
swap(&*(*(array+i)+1),?&*(*(array+j)+1));
}
} } return?0;}
int?swap(int?*a,?int?*b)
{
*a?=?(*a)?+?(*b); *b?=?(*a)?-?(*b); *a?=?(*a)?-?(*b); return?0;}
int?printArray(int?array[][2],?int?dim1,?int?dim2?)
{
int?i?=?0; int?j?=?0; for(?i?=?0;?i?<?dim1;?i++) { for(j?=?0;?j?<?dim2;?j++) {printf("%d?",?*(*(array+i)+j));
} printf("\n"); } return?0;}