我有以下代码:
#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 随机整数排序。我怎么能这样做?
答案 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];
}