この C プログラムでは、data.txt として読み込んだ配列のバイナリ検索を行っています。
最初に、data.txt を配列としてスキャンしようとしています。2 番目に、挿入ソート アルゴリズムを使用してソートしています。3 番目に、配列のバイナリ検索を行っています。私はCを初めて使用し、コードがどこで間違っているのかわかりません。間違っていることを教えてくれてありがとう。
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
int main ()
{
int v, t, low, high, mid, search;
int n = 20, array[20];
int p = 0;
FILE *infile;
infile = fopen(“data.txt”,”r”);
while(!feof(infile))
{
fscanf(infile,”%d”, &array[p]);
p++;
}
for (p = 0; p < n; p++) {
scanf("%d", &array[p]);
}
for (p = 1 ; p <= n - 1; p++) {
v = p;
while ( v > 0 && array[v] < array[v-1]) {
t = array[v];
array[v] = array[v-1];
array[v-1] = t;
v--;
}
}
for (p = 0; p <= n - 1; p++) {
printf("%d\n", array[p]);
printf("Please enter a value (-1 = done)>\n");
scanf("%d",&search);
low = 0;
high = n - 1;
mid = (low+high)/2;
while( low <= high )
{
if ( array[mid] < search )
low = mid + 1;
else if ( array[mid] == search )
{
printf("%d is located at %d in the array.\n", search, mid+1);
break;
}
else
high = mid - 1;
mid = (low + high)/2;
}
if ( low > high )
printf("-1\n");
return 0;
}