lzth.net
当前位置:首页 >> C语言二维数组排序 >>

C语言二维数组排序

在C语言中,二维数组按行存储,对每一行排序很方便,可以把每一行当成一个一维数组,使用排序函数直接进行排序.然而对每一列进行排序,就不能直接当成一维数组进行排序.但是仍然可以把第j列a[0M-1][j]在逻辑上当成一维数组进行排

无论是多少维的数组,机内都是一维的,以行优先存放.所以直接降为一维数组排序最方便省事.下面以二维数组为例写出代码#include "stdio.h"int main(int argc,char *argv[]){ int x[3][3]={{9,4,3},{6,2,7},{5,8,1}},i,j,k,*p; printf("Before

这是最基本的排序算法 依次比较两个把大的放在前面 循环 循环 就可以了

#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()%

选择法:#include<stdio.h>#define N 5#define M 4void main(){ int x,i,j,k,t,a[M][N];float sum=0.0,avg[M];//输入数组:for(x=0;x<M;x++) for(i=0;i<N;i++) scanf("%d",&a[x][i]);//数组排序:for(x=0;x<M;x++){ for(i=0;i<N;i++) { k=i; for(j=i+1;j<N;j++) if(a[x]

#includeint main(){ int a[100]={12,35,36,45,88,77,99,14,123,321, 78,98,58,52,54,56,575,59,15,222, 111,222,333,444,555,666,777,888,999,101, 22,33,44,55,66,75,48,49,94,91,93, 1,2,3,4,5,6,10,7,8,9,85,86,84,46, 145,146,147,148,149,150,154,

#include <stdio.h> void bubble(int *a,int n) /*定义两个参数:数组首地址与数组大小*/ //冒泡 { int i,j,temp; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) /*注意循环的上下限*/ if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } void selectsort(int *a,int n) //选择排序 { int

输出6,4,3,2, 原数组 1 4 3 2 8 6 5 7 3 7 2 5 4 8 6 1 循环比较a[0][0],a[1][1],a[2][2],a[3][3] 先是i=0,k=i+1->k=1 a[0][0]<a[1][1]交换得到a[0][0]=6,a[1][1],=1,后面k++,但是现在a[0][0]=6,都比后面的大,所以都不交换 然后i++->i=1,k=2 同理去比较最后得到交换后的数组: 6 4 3 2 8 2 5 7 3 7 1 5 4 8 6 1 a[1][1]

改好了,试试#include<stdio.h> int main() { int a[3][5]={{23,5,71,10,4},{39,23,7,85,-9},{36,12,52,-8,47}}; printf("输入数组:\n"); int i,j,k,s,d; for(i=0;i<3;i++) for(j=0;j<5;j++) { for(s=j;s<5;s++) { if(a[i][j]>a[i][s]) { k=a[i][s]; a[i][s]=a[i][j]; a[i][j]=k; } } } for(i=

#include <stdio.h> int main() { int a[4][3]={{72,88,82},{85,68,75},{91,84,95},{77,81,55}}; int i,j,k,t; for(i=0;i<4;i++) for(j=0;j<4-i-1;j++) if(a[j][2]>a[j+1][2]) for(k=0;k<3;k++) { t=a[j][k]; a[j][k]=a[j+1][k]; a[j+1][k]=t; } for(i=0;i<4;i++) { for(j=0;j<3;j++) printf("%d ",a[i][j]); printf("\n"); } return 0;

jjdp.net | msww.net | artgba.com | dzrs.net | dbpj.net | 网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com