二维数组C语言排序
发布时间: 2023-06-14 16:00:38
❶ 如何用c语言的qsort对二维数组排序
建议你这样试试看:
先定义数组大小:
❷ C语言怎样对二维数组中每个元素进行选择排序
#include<stdio.h>
#include"stdlib.h"
#include"time.h"
intmain(intargc,char*argv[]){
inta[5][8],i,j,k,t,*p;
printf("排序前: ");
srand((unsigned)time(NULL));
for(i=0;i<5;i++){//为二维数组赋值
for(j=0;j<8;printf("%3d",a[i][j++]=rand()%100));
printf(" ");
}
printf("排序后: ");
p=(int*)a;//降为一维,这样排序简单
for(t=i=0;i<40;i++){//选择法排序
for(k=i,j=k+1;j<40;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 ",p[i]);
}
return0;
}
❸ 如何用c语言给输入的二维数组每一行排序
可以用stdlib.h中的qsort函数
如果是int a[10][10]的话
排序第i行
qsort(a[i],10,sizeof(int),comp);
就可以了,comp是一个比较函数
int comp(const void *m1, const void *m2){
return *(int*)m1-*(int*)m2;
}
这样就可以排序了,如果要反序,就将comp中的m1和m2互换,可以试试,如果不对可以Hi我
热点内容