编写一个C语言的程序,程序能将一个文档中的一串无序整数读取,并利用qsort函数将其升序在屏幕上排列显示。之后利用bsearch函数判断,任给一个整数a,a是否在已升序排列的整数序列中。请注意以下要求:
1、读取文件函数duwenjian在最后已给出。文件名paixu的格式为:第一行代表数组中数字的个数,第二行为一串无序数组。例如:第一行:7,第二行:-2 8 42 9 76 1 30。
2、程序中使用的数组A最多为10000位,请用malloc与free函数执行此条件。
3、程序中需包含比较函数int bijiao_int(const void *l, const void *r),函数可以比较两个数*l,*r是否满足*l<*r,或*l==*r,或*l>*r,相应回传为-1,0,1
读文件函数duwenjian如下,其中的10000请用malloc和free函数执行
int duwenjian(char *paixu, int A[], int *lang)
{
FILE *file;
int i;
file=fopen(paixu, "r");
if (file==NULL) {
fprintf(stderr, "文档 %s 打开失败.\n", paixu);
return -1;
}
fscanf(file, "%d", lang);
if (*lang>10000) {
fprintf(stderr, "文档%s中的数字过多,至多只允许10000位.\n",
paixu);
return -1;
}
for (i=0; i<*lang; i++) {
fscanf(file, "%d", &(A[i]));
}
return 0;
}
读取文件函数(duwenjian)将文件名为“paixu(排序)”的文件打开,并将其第二行内容依次写入数组A,其第一行内容为数组中数的个数,将其记录于lang中。若执行失败则返回-1,成功则返回0.
我的文件路径"c:\\list.txt",里面测试数据就是你举例的:第一行:7,第二行:-2 8 42 9 76 1 30。
#include<stdio.h>