[問題] 循序搜尋函數消失

看板C_and_CPP作者時間15年前 (2009/02/23 22:29), 10年前編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
題目 ‧設計下列循序搜尋函數  int linearSearch( const int array[], int key, int size)  其中  –array[]是整數資料儲存的陣列  –key是要搜尋的值  –size是array的大小  –此函數傳回key在array中的註標。如key不在此陣列中,則傳回-1。 ‧在main()中宣告整數陣列a,大小為100。對所有的i, 0<i<100, 將a[i]設為i*2。 ‧在main()中讓使用者輸入key值,呼叫linearSearch,然後將結果印出。 這是我寫的 不能執行 #include "stdafx.h" #include <stdio.h> #define SIZE 100 int main(int argc, char* argv[]) { int a[100]; int i; int num; int ans; for(i=0;i<100;i++) a[i] = i*2; printf("Please enter an interger: "); scanf("%d",&num); ans=linerSearch(a,num,100); if(ans=-1) printf("Sorry,we can't find that number.\n"); else printf("Find! The number is in a[%d].\n",ans); return 0; } int linearSearch(const int array[],int key,int size) { for(int i=0;i<size;i++) { { if(array[i]==key) return key; } return -1; } } 這是同學寫的 也不能執行 #include "stdafx.h" #include 〈stdio.h〉 int linerSearch (const int array[], int key, int size) { for (int i = 0; i < size; i++) { if (array[i] == key) return i; } return -1; } int _tmain(int argc, _TCHAR* argv[]) { int a[100]; int number; int answer; for (int i = 0; i < 100; i++) a[i] = i * 2; printf ("Please enter a number.\n"); scanf ("%d", &number); answer = linerSearch (a, number, 100); if (answer == -1) printf ("Sorry, we can't find that number.\n"); else printf ("Find! The number is in a[%d].\n",answer ); return 0; } 麻煩幫我找到錯誤 謝謝ˊˇˋ -- ※ 發信站: 批踢踢實業坊(ptt.cc)

02/23 22:48, , 1F
你的版本應該沒有錯,是函式沒有forward declaration嗎?
02/23 22:48, 1F

02/23 22:50, , 2F
還有把 "stdafx.h" 去掉吧, vs 自動生成的都很礙眼
02/23 22:50, 2F

02/23 23:31, , 3F
在前面宣告linearSearch,main中linearSearch打錯
02/23 23:31, 3F

02/23 23:33, , 4F
ans==-1,函式中if裡面要傳回i,把return -1拿到for外面
02/23 23:33, 4F

02/26 01:26, , 5F
謝謝樓上兩位 :)
02/26 01:26, 5F
※ 編輯: hellosmile (218.166.239.230), 05/16/2014 22:04:36
文章代碼(AID): #19ehAnKQ (C_and_CPP)