English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

1,42,55,78,86,45,33這是陣列

需要隨便輸入一個數字 假如有這個數字會顯示有 沒有這個數字會顯示沒有

2006-07-11 08:59:10 · 3 個解答 · 發問者 阿猴 2 in 電腦與網際網路 程式設計

有人可以給C++的嗎?

2006-07-11 09:58:13 · update #1

C++的程式執行結果假如輸入是42
42
1,33,42,45,55,78,86

2006-07-13 06:08:36 · update #2

可以再加上它總共搜尋幾次嗎

2006-07-13 07:57:30 · update #3

我才剛學不到一個禮拜 抱歉 因為轉學 忽然轉到人家已經學到一半的課程 所以都聽不懂
另外"請按任意鍵繼續"我問老師 老師說也不知道為什麼會有那個 因為那一句話 在程式裡面並沒有這個字串 而且 我們寫其他程式 請按任意鍵繼續這句話都是英文 是因為使用的C++程式版本不同嗎?

2006-07-14 02:45:24 · update #4

3 個解答

#include#includeusing namespace std;int main(){   int ar[] = {1,42,55,78,86,45,33};   int count,tmp,i,j;   int m,left,right;   int find;   cin >>find;   count = sizeof(ar)/sizeof(ar[0]);   for(i=0; iar[j]){            tmp = ar[i];   ar[i] = ar[j]; ar[j] = tmp;         }      }   }   for(i=0;i=left){         m = (left+right)/2;         if( ar[m] > find)    right = m-1;         else if(ar[m] < find)   left = m+1;         else break;      }   printf((right>=left) ? "\n有\n":"\n沒有\n");   system("pause");   return 0;}

2006-07-13 18:03:35 補充:
int count,tmp,i,j;改為int count,tmp,i,j,search=0;在m = (left+right)/2;的上面一行加入search++;在printf那行下面一行加入printf("搜尋了%d次",search);

2006-07-13 18:05:46 補充:
不需要輸出陣列值的話刪除for(i=0;i
2006-07-14 13:33:32 補充:
我是用DevC++這個軟體寫的,不然你把system("pause");這行刪除試試

2006-07-11 17:18:53 · answer #1 · answered by ? 6 · 0 0

〝已排序完成的資料〞!
您的程式應該有 sort 的功能,而不是人工 sort 原始資料。

2006-07-11 11:02:16 · answer #2 · answered by ? 7 · 0 0

import java.util.Scanner;//二元搜尋法/*二元搜尋用於已排序完成的資料,目地是決定某一元素是否出現在向量中, * 如果找到,便傳回"有"。如果找不到,傳回"沒有" 。在程序中, * 經過不斷檢查某一範圍的中間值,我們持續將可能包含標的值的範圍減半, * 上述步驟一直進行,直到範圍縮減側一個元素為止。最後在檢查值是否正 * 確,如果不是我們要的值,便傳回 "沒有"。 */public class Search {  public static void main(String[] args) {  int number[]={1,33,42,45,55,78,86};  Scanner inp=new Scanner(System.in);  System.out.print("請輸入要搜尋的數字:");  int searchnumber=Integer.parseInt(inp.next());  Search s=new Search();  String findnumber=s.compare(number,number.length,searchnumber);  System.out.println("findnumber="+findnumber); }    String compare(int number[],int high,int scarchnumber){ //二元搜尋法     int low=0;     while(low

2006-07-11 09:16:58 · answer #3 · answered by anye 5 · 0 0

fedest.com, questions and answers