sách gpt4 ăn đã đi

C 语言 - 如何修复代码中的二分查找函数?

In lại Tác giả: Walker 123 更新时间:2023-11-30 20:41:21 28 4
mua khóa gpt4 giày nike

这就是我所拥有的

#include 
#include

void print(int a[], int size);
void sort (int a[], int size);
void swap (int* a, int *b);
int search(int searchValue, int a[], int size);

int main()
{
float avg = 0;
float sum = 0;
float arrayr [50];
int i = 0;
int j = 0;
int a;
int b;
int sid = 1;
int number;
int size = sizeof(arrayr) / sizeof(int);
sort(arrayr,size);
print(arrayr,size);

FILE* fp;
fp = fopen("A7data.txt","r");
if(fp==0)
{
printf("File does not exist");
exit(1);
}

for (i=0; i<50; i++)
{
fscanf(fp,"%d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d",&arrayr[i]);
}
sort(arrayr,50);
//printf("%d",a[i]);
printf("Enter student ID -> ");
scanf("%d",&sid);
if (sid == 0)
{
printf("%d is not a valid student ID\n",search(number,arrayr,size));
}
khác
{
printf("%d is a valid student ID\n",search(number,arrayr,size));
}

trả về 0;
}

void print (int a[], int size)
{
số nguyên i;
int sid = 0;
int number;
int arrayr;
//for (i = 0; i < size; i++)

//printf("\n");
}

void sort (int a[], int size)
{
int i,j;
for (i = 0; i < size - 1; i++)
{
for (j = i; j < size; j++)
{
if (a[j]
}
}
}

void swap (int* a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}

int search(int searchValue, int a[], int size)
{
int low, high, middle;
int sid;
low = 0;
high = size-1;
while (low <= high)
{
middle = (low + high) / 2;
if (searchValue < a[middle])
{
high = middle - 1;
}
else if (searchValue > a[middle])
{
low = middle + 1;
}
khác
{
return middle;
}
}
return sid;
}

这是我的输出

 Enter student ID -> 20119084

2001840454 is a valid student ID

Process returned 0 (0x0) execution time : 2.816 s
Press any key to continue.

分配方向是读入作业 7 学生数据文件的副本。它正好有 50 条记录。将学生 ID(文件中的第 1 列)存储到数组中。 按升序对数组进行排序。 编写一个二分查找函数来演示以下内容。

56874837 是有效的学生证。56874838 不是有效的学生证。

http://voyager.deanza.edu/~bentley/ass7data.html这是我们应该读取的数据文件

我的代码没有显示正确的输出,我认为这是因为我的二分搜索函数或函数中的某些内容是错误的。我不确定我做错了什么,因为我的输出没有像指示显示的那样显示。

câu trả lời hay nhất

对于初学者,您将 number 传递给 search,但从未设置过 number。对于其余的,请投入一些精力,使用调试器或 IDE 或 inf 语句来弄清楚您的代码在做什么......从那里您可以弄清楚如何纠正它。

关于C 语言 - 如何修复代码中的二分查找函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15629425/

28 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress