【发布时间】:2015-02-26 16:27:53
【问题描述】:
好的,这里我有一个小函数,可以对程序中写的一些值进行排序
#include <stdio.h> /* printf */
#include <stdlib.h> /* qsort */
#include <conio.h> /* getch */
int values[] = { 40, 10, 100, 90, 20, 25 };
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int main ()
{
int n;
qsort (values, 6, sizeof(int), compare);
for (n=0; n<6; n++)
printf ("%d ",values[n]);
getch();
}
这很好用,没有给出错误。
现在,在我的主项目中,我必须对文件中的值进行排序。我在想我可以从文件中复制这些值并执行与此处完全相同的操作。
然而,这似乎很容易,但我还需要他们在文件中的行,这意味着我需要第二个数组,其中包含数字 1-SIZE。鉴于我的文件应最大为 512 行。我可以采取哪些步骤来完成这项工作?
例子:
User ID: Score:
1 13
2 9
3 13
4 19
5 8
6 11
7 14
8 17
应该改成
User ID: Score:
5 8
2 9
6 11
3 13
1 13
7 14
8 17
4 19
【问题讨论】:
-
读取字符串向量中的所有行(即char**),然后创建一个比较函数,根据字符串中的第二个整数比较两个字符串。
-
使用两个整数的结构,并根据结构进行比较。
-
@MihaiMaruseac 当然,我该怎么做?
-
已经提供的答案是否不能回答您的问题?
-
@ryyker 是的,它工作得很好。