在基于C的 - 仅在第三个colomn上对随机整数的10x10排序矩阵

时间:2017-02-26 10:06:31

标签: c sorting

我有以下代码:

#include<stdio.h>
#include <stdlib.h>
#include <time.h> 

int main(int argc, char **argv)
{
    FILE *fp;
    srand(time(NULL));
    fp = fopen ("dosyalar.txt", "w");
    int m, n;

    for(m = 0; m<10; m++) {
        for(n=0; n<10; n++) {
            fprintf(fp, " %d ", rand()%10000+1);
        }
        fprintf(fp, "\n");
    }
    fclose(fp);
    return 0;
}

在这里,当我通过键入clang text.c -o test./test然后cat dosyalar.txt在终端中编译此代码时。它给了我10x10矩阵的随机整数(0 - 10000)。我想要的是,只有第三个colomn 随机整数排序。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

简单的方法:保持原样并使用

sort -k 3 dosyalar.txt

另一种方式:

使用数组和qsort,类似

int arr[10][10];

/* Fill array with some random numbers */

qsort(arr, 10, sizeof arr[0], compare);

int compare(const void *pa, const void *pb)
{
    const int (*a)[10] = (const int (*)[10])pa;
    const int (*b)[10] = (const int (*)[10])pb;

    return a[3] - b[3];
}