- 论坛徽章:
- 0
|
从100W个随机的数据里面找出最大的5个。
我选用的是直接选择排序。因为不需要把所有的数都排成有序,我个人觉得直接选择应该会比较快。
生成100w随机数
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- main()
- {
- FILE *fp;
- long get;
- long i=0;
- srand((unsigned)time(NULL));
- fp = fopen("srand.txt","w");
- for(i=0;i<1000000;i++)
- {
- get = rand();
- fprintf(fp,"%d\n",get);
- }
- fclose(fp);
- }
复制代码
- #include<stdio.h>
- //void select_sort(unsigned int t,int n);
- main()
- {
- int n=1000000;
- unsigned int t;
- char *s;
- FILE *fp;
- s = malloc(100);
- fp = fopen("srand.txt","r");
- while(!feof(fp))
- {
- fgets(s,100,fp);
- t = atoi(s);
- printf("%d\n",t);
- // select_sort(t,n);
- }
- free(s);
- fclose(fp);
- }
复制代码
不知道为什么,在这里就出毛病了,打印出来的数据被截去了一段。而且unsigned int t; 应该要定义为数组才能继续做后面的排序的。
我是刚开始学c,以前也没有实际的编程经验。现在卡在这里过不去了。所以请朋友们帮忙看看。我应该怎么改这段代码。
[ 本帖最后由 lovfreebsd 于 2007-11-9 16:52 编辑 ] |
|