中易网

C语言怎样对二维数组中每个元素进行选择排序

答案:3  悬赏:40  
解决时间 2021-11-25 06:46
C语言怎样对二维数组中每个元素进行选择排序
最佳答案
1)核心思想是每行按顺序排列好,假定从小到大,然后,每列从小到大排序
2)假设数组为a[i_max][j_max]
核心代码
for(i=0;i<i_max;i++)

for(j=0;j<j_max;j++)
for(k=j+1;k<j_max-1;k++)
if(a[i][k]<a[i][j])
{ t=a[i][j];
a[i][j]=a[i][k];
a[i][k]=t;

}

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

for(i=0;i<i_max;i++)
for(k=i+1;k<i_max-1;k++)
if(a[k][j]<a[i][j])
{ t=a[i][j];
a[i][j]=a[k][j];
a[k][j]=t;

}
望采纳
全部回答
#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;i<5;i++){//为二维数组赋值         for(j=0;j<8;printf("%3d",a[i][j++]=rand()%100));         printf("\n");     }     printf("排序后:\n");     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\n",p[i]);     }     return 0; }
用一个两重循环就可以了: #include <stdio.h> void main() {     int a[3][4] = {0}, row, col;     printf("请输入数组元素的值(3行4列): \n");     for (row=0; row<3; row++)         for (col=0; col<4; col++)             scanf("%d", &a[row][col]);     printf("您输入的数组为:\n");     for (row=0; row<3; row++)     {         //输出当前行的元素         for (col=0; col<4; col++)             printf("%3d", a[row][col]);         //换行         printf("\n");     } } //测试结果:
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
派对礼服平时如何穿,外套如何搭配
社保和公积金从一个公司转到另外一个公司怎么
豆花的意思是什么啊?请解释下!
那些网络红人背影有黑色的是用什么相机拍的?
三人上12休24比常白班多上吗
高铁票最多可以提前几天改签??
从pp助手下载音乐到iphone5,没有歌词怎么解
倾心婚庆地址在什么地方,我要处理点事
醉霞的意思是什么啊?请解释下!
做西米露,没有椰汁,没有鸡蛋,没有炼奶,该
脚踵的意思是什么啊?请解释下!
我喜欢布娃娃,要说明文
农村坟地风水怎么看
为什么现实中聊天好好的微信确都不回我
使用JAVA编程实现复数类ComplexNumber
推荐资讯
太甚的意思是什么啊?请解释下!
巴林左旗公安局交通警察大队办公地址在什么地
北京时间20:51是新疆时间多少
qq水浒怎么洗出闪光武将
已知成年人12小时需要氧气2268升。此人12小时
启手的意思是什么?启手的释义是什么啊?
海菜和金针姑一起做的行吗
悬纳的意思是什么啊?请解释下!
高州市金山国土所地址在什么地方,想过去办事
hpstreamnotebookpc1313-c077nr能不能装win7
十六分之十、六十三分之二十七、二十五分之十
申请照顾家里老人的申请
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?