gpt4 book ai didi

c# - 我的代码存在逻辑错误

转载 作者:太空宇宙 更新时间:2023-11-03 17:29:26 25 4
gpt4 key购买 nike

我写了这段代码,但它总是显示相同的结果,为什么?该代码是一种搜索方法。

using System;
using System.Collections.Generic;
using System.Text;

namespace CArraySe
{
class Program
{
class CArray
{
private int[] arr;
private int upper;
private int numElements;
private int compCount;

public CArray(int size)
{
arr = new int[size];
upper = size - 1;
numElements = 0;
compCount = 0;
}

public void Insert(int item)
{
arr[numElements] = item;
numElements++;
}

public void DisplayElements()
{
for (int i = 0; i <= upper; i++)
{
Console.Write(arr[i]);
if (i == upper)
{
Console.WriteLine();
continue;
}
Console.Write(", ");
}
}

public void Clear()
{
for (int i = 0; i <= upper; i++)
arr[i] = 0;
numElements = 0;
}
public bool SeqSearch(CArray n, int sValue)
{
for (int index = 0; index < n.upper; index++)
{
if (arr[index] == sValue)

return true;
}

compCount++;
return false;
}
public int binSearch(CArray n, int value)
{
int upperBound, lowerBound, mid;
upperBound = n.upper; lowerBound = 0;

while (lowerBound <= upperBound)
{
mid = (upperBound + lowerBound) / 2;

if (arr[mid] == value)
return mid;

else if (value < arr[mid]) upperBound = mid - 1;

else lowerBound = mid + 1;
}
compCount++;
return -1;
}

static void Main(string[] args)
{
CArray nums = new CArray(10);
Random rnd = new Random(100);
for (int i = 0; i < 10; i++)
nums.Insert((int)(rnd.NextDouble() * 100));

Console.WriteLine();
Console.Write("The Binary Search Result is: ");
Console.WriteLine(nums.binSearch(nums, 500));
Console.WriteLine(nums.compCount);
nums.Clear();
for (int i = 0; i < 10; i++)
nums.Insert((int)(rnd.NextDouble() * 100));

Console.Write("The Sequential Search result is: ");
Console.WriteLine(nums.SeqSearch(nums, 500));
Console.WriteLine(nums.compCount);
}
}
}
}

即使我更改了要查找的数字,它也总是显示相同的结果。

输出是:

The Binary Search Result is: -1
1
The Sequential Search result is: False
2
Press any key to continue . . .

最佳答案

我认为未找到您正在搜索的值 (500)。尝试输出 nums 数组并验证您要查找的内容是否在数组中。

另外,一个搜索返回一个 int,另一个返回一个 bool。这有什么具体原因吗?

编辑:另外,Binary Search仅适用于排序列表。

关于c# - 我的代码存在逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/451925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com