沭阳县政府采购网路灯:大家帮我解释下这个程序每个环节是什么意思,感激不尽

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 18:30:20
#include "stdafx.h"
#include "stdio.h"
#include "malloc.h"
int main(int argc, char* argv[])
{
int *num,a,i=1,j,k,b,c,d,e;
FILE *fp1,*fp2;

/*scanf(%d",&a);*/
fp1=fopen("D:\\021105311\\data.dat","r");
while(!feof(fp1))
{
fscanf(fp1,"%d",&e);
i++;
}
num=(int*)calloc(i,sizeof(int));
rewind(fp1);
i=1;
while(!feof(fp1))
{
fscanf(fp1,"%d",&num[i]);
i++;
}

for(j=1;j<=i;j++)
for(k=1;k<=i-j;k++)
if(num[k]>num[k+1])
{
b=num[k];
num[k]=num[k+1];
num[k+1]=b;
}
fp2=fopen("D:\\021105311\\data.ord","w+");
for(b=1;b<=i;b++)
fprintf(fp2,"%d ",num[b]);
fclose(fp1);
fclose(fp2);
printf("please enter your number");
scanf("%d",&a);
c=1;
d=i;
k=(c+d)/2;
int flag = 0;
while(c<d && c!=k && d!=k)
{
if(a<num[k])
{
d=k;
k=(c+k)/2;
}
else if (a>num[k])
{
c=k;
k=(k+d)/2;
}
else
{
flag = 1;
printf("it's %d",k);
break;
}
}
if (flag == 0) printf("there is none\n");
free(num);
}

这个这么简单啊
怎么了看不懂呢?