기금넷 공식사이트 - 복권 조회 - C 언어 추첨 20 선 5 문제 해결!

C 언어 추첨 20 선 5 문제 해결!

TC 2.0 은 테스트를 통과하고 직접 테스트하여 결과가 정확한지 확인합니다.

# include & ltstdlib.h & gt

# include & ltmem.h & gt

# include & ltstdio.h & gt

#define FILE 1 "data.txt "

# 정의 파일 2 "temp.txt "

# 정의 파일 3 "result.txt "

#define NUM 1 8

# NUM2 5 정의

FILE * FP = NULL

Int * sum = NULL

Int sum 1, sum2, index = 0;;

Intnumber [num1];

Intresult [num2];

Void 초기화 ()

{

Int I, s, t;

Printf ("시스템이 초기화 중입니다. 。 。 \ n ");

Printf ("숫자 범위 입력:");

Scanf("%d %d ",& ampsum 1. 합계 2);

Getchar ();

S =1;

T = NUM2

For(I = 0;; 나<5; ++i)

S * = (t-I);

Sum = (int *) malloc (sizeof (int) * s);

Memset (합계, 0, sizeof(int)* s); * s);

For(I = 0;; 나< num1; ++i)

숫자 [I] = I+1;

Fp = fopen (파일1,"w");

If (fp == NULL)

{

Printf ("파일을 열 수 없습니다! \ n ");

종료 (-1);

}

}

Void asort(int *a, int s)

{

Int I, j, k, t;

For(I = 0;; 나<s-1; ++i)

{

K = I;;

For (j = I+1; J & lts;; ++j)

{

If (a [k] > A[j])

{

K = j;;

}

}

만약 (k! = I)

{

T = a [I];

A [I] = a [k];

A [k] = t;

}

}

}

잘못된 트래버스 (내부 개수)

{

Int I, j, f;

If (cnt == NUM2)

{

Ints = 0;

Int a [num 2];

For(I = 0;; 나 & ltNUM2++i)

S += 결과 [I];

If(s & lt;; Sum1| | s > 합계 2)

반환;

For(I = 0;; 나< 지수; ++i)

{

If (s == sum[i])

반환;

}

합계 [인덱스++] = s;

Memcpy(a, result, sizeof(int)* num 2); 2);

Asort(a, num 2);

For(I = 0;; 나< num 2-1; ++i)

{

Fprintf(fp, "%d", a [I]);

Printf("%d ",a [I]);

}

Fprintf(fp, "%d\n", a [I]);

Printf("%d\n ",a [I]);

반환;

}

For(I = 0;; 나< num1; ++i)

{

F = 0;;

For(j = 0;; J & ltcnt++j)

{

If (결과 [j] == 숫자 [i])

{

F =1;

깨뜨리다

}

}

다음 경우 (f == 1)

계속;

결과 [개수] = 숫자 [I];

순회 (CNT+1);

}

}

빈 지우기 ()

{

무료 (합계);

Printf ("작업이 성공적으로 완료되었습니다! 결과는 result.txt 파일에 저장되었습니다. \ n ");

Printf ("시스템이 청소 중입니다. 。 。 \ n ");

Fclose (FP);

Unlink (파일1);

링크 해제 (파일 2);

}

Void main ()

{

File * FP1;

Int I, f, t, filter [num 2];

Char 선택;

Init ();

순회 (0);

플래시 (FP);

Fclose (FP);

Fp = fopen (파일1,"r");

Fp1= fopen (파일 2, "w");

If (fp == NULL || FP 1 == NULL)

{

Printf ("파일을 열 수 없습니다! \ n ");

종료 (-1);

}

하다

{

Printf ("필터 번호 입력:");

Scanf("%d ",& ampt);

Getchar ();

/*

If(t & lt;; Number[0]| | t>; gt; 번호 [NUM 1- 1])

깨뜨리다

*/

While (1)

{

F = 0;;

Memset(result, 0, sizeof(int)* num 2); 2);

For(I = 0;; 나 & ltNUM2++i)

Fscanf(fp, "%d", result+I);

If (결과 [0] == 0)

깨뜨리다

For(I = 0;; 나 & ltNUM2++i)

{

If (t == result[i])

{

F =1;

깨뜨리다

}

}

다음 경우 (f == 1)

계속;

For(I = 0;; 나< num 2-1; ++i)

{

Printf("%d ",result [I]);

Fprintf(fp 1, "%d", result [I]);

}

Printf("%d\n ",result [I]);

Fprintf(fp 1, "%d\n", result [I]);

}

Fclose (FP);

Fclose (FP1);

Unlink (파일1);

이름 바꾸기 (파일 2, 파일1);

Fp = fopen (파일1,"r");

Fp1= fopen (파일 2, "w");

Printf ("필터링을 계속하시겠습니까 (y/n)?" );

Choice = getchar ();

Getchar ();

}

While (choice = =' y' | | choice = =' y');

Fclose (FP);

Fclose (FP1);

Fp = fopen (파일1,"r");

Fp1= fopen (파일 3, "w");

If (fp == NULL || FP 1 == NULL)

{

Printf ("파일을 열 수 없습니다! \ n ");

종료 (-1);

}

Printf ("필터링할 숫자 세트 입력:");

For(I = 0;; 나 & ltNUM2++i)

Scanf("%d ",필터+I);

For(I = 0;; 나 & ltNUM2++i)

Printf("%d ",filter [I]);

Getchar ();

F = 0;;

While (1)

{

Memset(result, 0, sizeof(int)* num 2); 2);

For(I = 0;; 나 & ltNUM2++i)

Fscanf(fp, "%d", result+I);

If (결과 [0] == 0)

깨뜨리다

I = 0;;

그리고 ((I & ltnum 2)& amp;; & amp (필터 [I] = = result [I++]);

If (i == NUM2)

계속;

For(I = 0;; 나< num 2-1; ++i)

Fprintf(fp 1, "%d", result [I]);

Fprintf(fp 1, "%d\n", result [I]);

}

Fclose (FP1);

Clear ();

시스템 ("일시 중지");

}