C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[42085] 대체 선택 알고리즘 인데.. 수정 좀 부탁 드려요.
루피블루 [] 1964 읽음    2005-10-05 18:53
도저히 모르겠습니다;;


#define NUM_REC 52
#define M 5
#define TRUE 1
#define FALSE 0
int all_frozen(int * f) {
int i;
for(i=0;i if(f[i]==FALSE)
return FALSE;
}
return TRUE;
}
void get_new_file_name(char *n, int a) {
char temp[5];
strcpy(n, "ofile");
itoa(a, temp, 10);
strcat(n,temp);
strcat(n,".dat");
}
int get_smallest(int *b, int *f) {
int i, s=0;
for(i=0;i if(f[i]==FALSE) {
s=i;
break;
}
for(i=0; i if(b[i] s=i;
return s;
}
void main() {
int i, j, s, last_key, serial_num;
FILE *fp, *fp2;
int data[NUM_REC]={109,49,34,68,45,2,60,38,28,47,16,19,34,55,
98,78,76,40,35,86,10,27,61,92,99,72,11,2,
29,16,80,73,18,12,89,50,46,36,67,93,22,14,
83,44,52,59,10,38,76,16,24,85};
int buffer[M],written[M],frozen[M];
char out_file_name[13];

/* create original file */
fp = fopen("ifile.dat", "wb");
for(i=0; i fprintf(fp, "%3d", data[i]);
fclose(fp);

fp = fopen("ifile.dat", "r");
for(i=0; i fscanf(fp, "%3d",&buffer[i]);
written[i]=FALSE;
}
serial_num=1;
for(j=M; j get_new_file_name(out_file_name,serial_num);
serial_num++;
fp2 = fopen(out_file_name,"wb");
for(i=0; i if(written[i]==FALSE)
frozen[i]=FALSE;
}
while(all_frozen(frozen)==FALSE) {
s=get_smallest(buffer,frozen);
fprintf(fp2, "%3d", buffer[s]);
last_key=buffer[s];
written[s]=TRUE;
frozen[s]=TRUE;
if(j fscanf(fp,"%3d",&buffer[s]);
j++;
written[s]=FALSE;
if(buffer[s] >= last_key)
frozen[s]=FALSE;
}
else
buffer[s]=-1;
}
fclose(fp2);
}
get_new_file_name(out_file_name,serial_num);
fp2 = fopen(out_file_name,"wb");
for(i=0;i if(buffer[i]==-1)
frozen[i]=TRUE;
else
frozen[i]=FALSE;
}
for(i=0;i s=get_smallest(buffer,frozen);
fprintf(fp2, "%3d",buffer[s]);
frozen[s]=TRUE;
}
fclose(fp);
fclose(fp2);
}

+ -

관련 글 리스트
42085 대체 선택 알고리즘 인데.. 수정 좀 부탁 드려요. 루피블루 1964 2005/10/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.