在C上排序2d数组

时间:2011-12-03 10:48:06

标签: c++ c

如何使用C语言编写程序来对2D数组进行排序,而不使用指针, 只是循环和if语句并只使用main函数

数组

7  5  2
3  1  4
6  9  8

将是

1  2  3
4  5  6
7  8  9

如果您可以发布示例代码:) 非常感谢

2 个答案:

答案 0 :(得分:0)

在发布此类问题之前尝试搜索网络。这是c:

中的冒泡排序实现的任何方式
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

#define ARRAY_SIZE 20

void print_array(int *array) {
    int x;
    for(x = 0; x < ARRAY_SIZE; x++) {
        if(x != ARRAY_SIZE-1)
            fprintf(stdout, "%d, ", array[x]);
        else
            fprintf(stdout, "%d\n", array[x]);
    }
}

int main() {
    int iarray[ARRAY_SIZE];
    int x, y, holder;

    // Seed rand()
    srand((unsigned int)time(NULL));

    for(x = 0; x < ARRAY_SIZE; x++)
        iarray[x] = (int)(rand() % 100);

    fprintf(stdout, "Before Sort\n---------------\n");
    print_array(iarray);  


    // Bubble sort method.
    for(x = 0; x < ARRAY_SIZE; x++)
        for(y = 0; y < ARRAY_SIZE-1; y++)
            if(iarray[y] > iarray[y+1]) {
                holder = iarray[y+1];
                iarray[y+1] = iarray[y];
                iarray[y] = holder;
            }

    fprintf(stdout, "\nAfter Sort\n---------------\n");
    print_array(iarray);  

}

答案 1 :(得分:-1)

我猜你需要这个算法的帮助。为此,您可以咨询http://www.learncpp.com/cpp-tutorial/65-multidimensional-arrays/