二维数组进行行的排序

#include "stdio.h"
main()
{
unsigned int m[2][4],z,t;
unsigned int j,k;
printf("input 8 numbers:\n");
for (j=0;j<2;j++)
for (k=0;k<4;k++)
scanf ("%d",&m[j][k]);
for (j=0;j<2;j++)
{
for (k=0;k<4;k++)
printf("%5d",m[j][k]);
printf("\n");
}
for (int z=0;z<2;z++)
{
for (int j=0;j<2;j++)
{
for(k=0;k<4-1-j;k++)
{
if (m[z][k]>m[z][k+1])
{
int t=m[z][k];
m[z][k]=m[z][k+1];
m[z][k+1]=t;
}
}
}
}

printf("Sort results:\n");
for (k=0;k<4;k++)
printf("%d",m[z][k]);

}

可以问一下,这个二维数组排序是哪里不对吗?每次输值进去都不能进行排序。

#include "stdio.h"
int main()
{
    unsigned int m[2][4],z,t;
    unsigned int j,k;
    printf("input 8 numbers:\n");
    for (j=0; j<2; j++)
        for (k=0; k<4; k++)
            scanf ("%d",&m[j][k]);
    for (j=0; j<2; j++)
    {
        for (k=0; k<4; k++)
            printf("%5d",m[j][k]);
        printf("\n");
    }
    for (int z=0; z<2; z++)
    {
        for (int j=0; j<4-1; j++)
        {
            for(k=0; k<4-1-j; k++)
            {
                if (m[j][k]>m[z][k+1])
                {
                    int t=m[z][k];
                    m[z][k]=m[z][k+1];
                    m[z][k+1]=t;
                }
            }
        }
    }
    for (int z=0; z<4; z++)
    {
        for (int j=0; j<2-1; j++)
        {
            for(k=0; k<2-1-j; k++)
            {
                if (m[k][z]>m[k+1][z])
                {
                    int t=m[k][z];
                    m[k][z]=m[k+1][z];
                    m[k+1][z]=t;
                }
            }
        }
    }
    printf("Sort results:\n");
    for (k=0; k<2; k++) {
        for (z=0; z<4; z++)
            printf("%5d",m[k][z]);
        printf("\n");
    }

    return 0;
}

供参考:

#include <stdio.h> 
#include <stdlib.h>
#include <time.h>
#define LINE 2   //行数
#define COLUMN 4 //列数
void bubble_sort(int a[], int n)
{
    int i, j, temp;
    for (j = 0; j < n - 1; j++)
        for (i = j + 1; i < n; i++)
        {
            if (a[i] < a[j])
            {
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
}
int main()
{
    int arr[LINE][COLUMN] = { 0 };
    int i, j;
    srand((unsigned int)time(NULL));
    for (i = 0; i < LINE; i++)
    {
        for (j = 0; j < COLUMN; ++j) { 
            arr[i][j] = rand() % 100 + 1;//利用随机数生成100以内整数
            //scanf("%d",&arr[i][j]);//手工输入测试数据
        }
        bubble_sort(arr[i], COLUMN);//输入完一行,就对该行进行排序
    }
    printf("输出按行排序后结果:\n");
    for (i = 0; i < LINE; i++)
    {
        for (j = 0; j < COLUMN; ++j) {
            printf("%4d ", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}