내 프로그램에 컴파일 오류가 없지만 출력이 잘못되었습니다. 예 입력 : 배열선형 검색 문제
크기 : 5 개
입력 번호 : 5 4 3 2 1
// 정렬 : 1 2 3 4 5
됨 : 1
출력 : 인덱스를 찾을 수 1~4
이미 숫자가 정렬되었으므로 결과는 인덱스 0에서 번호 1이어야합니다. 어떻게 변경합니까?
int[] nums = new int[100];
int SizeNum;
bool isNum = false;
private void ExeButton_Click(object sender, EventArgs e)
{
int i, loc, key;
Boolean found = false;
string SizeString = SizeTextBox.Text;
isNum = Int32.TryParse(SizeString, out SizeNum);
string[] numsInString = EntNum.Text.Split(' '); //split values in textbox
for (int j = 0; j < numsInString.Length; j++)
{
nums[j] = int.Parse(numsInString[j]);
}
if (SizeNum == numsInString.Length)
{
Array.Sort(numsInString);
key = int.Parse(SearchTextBox.Text);
ResultText.AppendText("Sorted: ");
for (i = 0; i < SizeNum; i++)
ResultText.AppendText(" " + numsInString[i]);
ResultText.AppendText("\n\n");
{
for (loc = 0; loc < SizeNum; loc++)
{
if (nums[loc] == key)
{
found = true;
break;
}
}
if (found == true)
ResultText.AppendText("Number " + key + " Found At Index [" + loc + "]\n\n");
else
ResultText.AppendText("Number " + key + " Not Found!\n\n");
}
}
}
이것은 선형 검색 외에는 다른 것처럼 보입니다. –
프로그램이 분명히 * 않습니다 * 당신이 원하는대로하지 않기 때문에 오류가 있습니다 ... –
그것은 lineair 검색과 비슷합니다. 그것은 마지막 부분입니다. 그러나 Sort()는 필요하지 않으며 입력 데이터에서 위치를 원한다면 잘못되었습니다. –