-2
#include <stdio.h>
#include <stdlib.h>
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));
}
else
{
printf("%d is a valid student ID\n",search(number,arrayr,size));
}
return 0;
}
void print (int a[], int size)
{
int 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]<a[i]) swap(&a[i],&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;
}
else
{
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是一個有效的學生ID。 56874838不是有效的學生證。
http://voyager.deanza.edu/~bentley/ass7data.html 這是我們應該讀
我的代碼沒有顯示正確的輸出數據文件,我想這是因爲我在我的功能二進制搜索功能,或什麼是錯的。我不確定我做錯了什麼,因爲我的輸出沒有像路線顯示那樣出現。
您能否至少確認它是否已排序?通過打印輸出? – 75inchpianist 2013-03-26 04:38:05
你爲什麼要嘗試排序和搜索浮點數組,並使用與int數組一起工作的函數? – 2013-03-26 04:38:35
您正在讀'sid'中的值爲'scanf(「%d」,&sid);',但將'number'傳遞給'search()' – Rohan 2013-03-26 04:39:59