에러(1개) 좀 잡아주세요
진주
질문 제목 :
에러가 발생합니다.
헤더파일
#ifndefSORTHEAD_H// if not, redefinition error
#defineSORTHEAD_H
#includeiostream
#includecstdlib
#includefstream
using namespace std;
#defineN_DATA1000000
class SortClass {
private:
intnum_data;// the number of input data
intorg_data[N_DATA+1];
intdata[N_DATA+1];
public:
voidInsertionSort(int data[],int n);
ofstream output_file;
};
InsertionSort 정의
#include sorthead.h
void SortClass:: InsertionSort(int data[], int n)
{
int i,j,b;
for(i=2 ; i=n ; i++){
b=data[i];
j=i;
while(data[j-1]b){
data[j]=data[j-1];
j--;
}
} data[j]=b;
}
main
#includesorthead.h
#includectime
#defineNUM_ITERATION 50// 실행 회수: 최소, 최대, 평균을 계산함.
intmain()
{
SortClass A;
for (i = 0; i NUM_ITERATION; i++) {
A.InsertionSort(0,n);
if (A.TestResult(n))
A.output_file i Good in Insertion Sort. endl;
else
A.output_file i Eorror in Insertion Sort. endl;
}
이하 생략
}질문 내용 :
보라색 부분에서 에러가 납니다.
파라메터타입을 맞게 넘겨주려고 0,n을 해서 실행을 하면
실행이 중지되었습니다. 라는 에러가 뜹니다.(에러는 0개)
파라메터를 어떻게 넘겨줘야 하는건가요??
-
보담
n이란 변수는 어디있나요?
-
횃대비
main 함수부분에 int data[n ; 선언해주고
A.InsertionSort(data,n) or A.InsertionSort(data,100) ; 이렇게 해주면 되는건가요...
안되서말이에요...ㅜ 너무 귀찮게 해드리네요.... -
개굴츼
데이터가 삽입되어있는 int 형 배열로 넣어주셔야죠.. 포인터도 상관없고요.. 그리고 n에다가는 그 배열의 원소 개수를 넣어주셔야 정상 작동하게 되어있네요
-
눈
그러면 A.InsertionSort(?,n)에서 ? 를 어떻게 잡아주어야 하는 건가요?
-
은G
0값으로 정상적인 매개변수는 되지만 실제로 함수 내부를 보시면 매개변수 0을 참조하여 연산을 수행합니다. 그러니 당연히 실행이 중지 되겠죠.