: void __fastcall TForm1::Button1Click(TObject *Sender) : { : int n, i, num; : Memo1->Lines->Add("enter list sizd"); : AnsiString gop; : gop = Edit1->Text; : Memo1->Lines->Add(gop); //노드 개수 입력 : if (n<1 || n > 100) //1=: { : Memo1->Lines->Add(("out of range:")+StrToInt(gop)); : : } : //.......... : } : 오류는 무한 반복이 됩니다...
입력된 노드의 개수 만큼 목록 처리를 하는데, n이 입력된 노드의 개수로 이용되도록 의도하신것 같네요. 위의 코드에서는 n에 다른 입력 값이 없습니다.
void __fastcall TForm1::Button1Click(TObject *Sender) { int n, i, num; try { n=StrToInt(Edit1->Text); // 입력하려는 노드의 개수 } catch(const EConvertError& e) { n=0; // 입력하려는 노드의 수치를 잘못 입력(수치가 아는 문자 등등)할 때 } Memo1->Lines->Add("enter list size: "+IntToStr(n)); // 노드 개수 출력 if (n<1 || n > 100) //1= { Memo1->Lines->Add(("out of range:")+IntToStr(n));
} //.......... }
다른 부분은 확인 안해봤습니다. : - P
무한 루프가 발생하면, 해당 루프되는 곳의 블럭안에서 Break Point를 지정하고, 루프의 조건절의 변수 값이 어떻게 변하는지 확인해 보세요.
|