컴파일오류는 없는데 실행하면 에러가..
진나
질문 제목 : 숫자비교하는 합수입니다.질문 요약 :처음에는 printf 로 화면에만 출력하다 욕심내서 파일에도 출력할려고 만들어봤습니다.질문 내용 : 컴파일오류는 없는데 실행해서 사용해보면 에러가 떠서 닫기를 눌러야 합니다.
파일 생성도 안되어 있어요....
#include stdio.h
#include stdlib.h
#include time.h
void getResult(int result[]); // 번호 추첨 함수
void checkResult(int result[], int nummber[][6]); // 담청확인 함수
void fcheckResult(int result[], int nummber[][6]);
int main(void)
{
int a,b;
int nummber[1][6]; // 자신의 번호
int result[7]; //추첨된 번호, result[6]은 보너스번호
FILE *fp;
fp = fopen(생성.txt, a); //파일 출력
if(fp != NULL)
getResult(result); // 번호 생성
printf(%3d,%3d,%3d,%3d,%3d,%3d 보너스 번호 %d\n, result[0],result[1],result[2],result[3],result[4],result[5],result[6]);
for (a=0; a1; a++) //
{
printf(#%d.\n, a+1);
for (b=0; b6; b++)
{
printf( %d 번호: , b+1);
scanf(%d, &nummber[a][b]);
}
printf(\n);
}
checkResult(result, nummber);
fcheckResult(result, nummber);
system(PAUSE);
fclose(fp);
return 0;
}
void checkResult(int result[], int nummber[][6])
{
int a, b, c; // for()
int cnt; // 비교 확인 값
for (a=0; a1; a++) {
cnt = 0;
for (b=0; b6; b++) {
for (c=0; c6; c++) {
if (nummber[a][b] == result[c])
cnt++;
}
}
if (cnt == 6)
printf( 축하 합니다. 1등 당첨 !!\n);
else if (cnt == 5) {
for (b=0; b6; b++) { // 보너스 번호가 있는지 확인하기
if (nummber[a][b] == result[6])
break;
}
if (b != 6)
printf( 축하 합니다. 2등 당첨 !!\n);
else
printf( 축하 합니다. 3등 당첨 !!\n);
}
else if (cnt == 4)
printf( 축하 합니다. 4등 당첨 !!\n);
else if (cnt == 3)
printf( 축하 합니다. 5등 당첨 !!\n);
else if (cnt == 2)
printf( 꽝 !!\n);
else if (cnt == 1)
printf( 꽝 !!\n);
else if (cnt == 0)
printf( 꽝 !!\n);
}
}
void getResult(int result[])
{
int i, j; // for()
for(i=0; i7; i++)
{
result[i] = rand()%45+1;
for(j=0; ji; j++)
{
if(result[j]==result[i])
{ //만약 중복이 된다면 다시 추첨을함.
result[i] = rand()%45+1;
j = -1;
} //if문 종료
} ////중복점사종료
} ////생성 종료
for(i=0; i6; i++) ////
{
for(j=i+1; j6; j++) ////
&nbsbsp; {
if(result[i]result[j]) ///
{
int temp=result[i];
result[i]=result[j];
result[j]=temp;
}
}
}
}
void fcheckResult(int result[], int nummber[][6])
{
int a, b, c; // for()
int cnt; // 비교 확인 값
FILE *fp;
for (a=0; a1; a++) {
cnt = 0;
for (b=0; b6; b++) {
for (c=0; c6; c++) {
if (nummber[a][b] == result[c])
cnt++;
}
}
if (cnt == 6)
fprintf(fp, 축하 합니다. 1등 당첨 !!\n);
else if (cnt == 5) {
for (b=0; b6; b++) { // 보너스 번호가 있는지 확인하기
if (nummber[a][b] == result[6])
break;
}
if (b != 6)
fprintf(fp, 축하 합니다. 2등 당첨 !!\n);
else
fprintf(fp, 축하 합니다. 3등 당첨 !!\n);
}
else if (cnt == 4)
fprintf(fp, 축하 합니다. 4등 당첨 !!\n);
else if (cnt == 3)
fprintf(fp, 축하 합니다. 5등 당첨 !!\n);
else if (cnt == 2)
fprintf(fp, 꽝 !!\n);
else if (cnt == 1)
fprintf(fp, 꽝 !!\n);
else if (cnt == 0)
fprintf(fp, 꽝 !!\n);
}
}
// 어디가 문제인지 알주세요.