1樓:匿名使用者
之前寫過一個程式類似的,你可以用作參考:
題目:試編寫一個程式完成:有15個數按從下到大的順序存放在一個陣列中.輸入一個數,要求折半查詢法找出該數是陣列中第幾個元素的值.如果該數不在陣列中,輸出「不在表。
*****下面是c**,其中陣列沒有設計為錄入,而是固定陣列*****
//輸出的序列是從0開始算的,也就是輸出的是所在陣列的索引
//注意陣列中沒有8
#include
int main()
int a=;
int n,first=0,end=14,mid;
scanf("%d",&n);
while(first<=end)//不要寫成firstmid=(first+end)/2;
if(a[mid]==n)
printf("your input number's index is %d(count from 0)",mid);
break;//忘記break會死迴圈
else if(n>a[mid])
first=mid+1;
else
end=mid-1;
if(first>end)
printf("your number is not in the array");
return 0;
2樓:匿名使用者
採用二分法查詢啊,不知道你說的有序是升序,還是降序~~~針對不同方式,**有些許差距
3樓:匿名使用者
#include
#define n 10
void main()
if(ch=='n')
printf("no found\n");}
4樓:
方法有兩種,一種是順序查詢,一種是折半查詢。
我講後一種吧。在有序數列中可以用折半查詢,就比如說有100個數,從小到大排列,要查詢某一個數的時候,先從第50個數先找,也就是折半,若所找的數比第50數大,就在這100數的右50個數找了,此時就找第(100+50)/2 ,即第75個數找,依次類推直到找到該數為止。下面是程式:
我不知道你的那個有序數列是什麼,先用幾個數字來替代吧#include
main()
;int left=0,right=9,a;
int find;
scanf("%d",&find);
while(leftnum[a])
left=a+1;
else
right=a-1;
}if(left printf("沒有這個數"); }**不懂可以問。 去玩金山打字通裡的打字遊戲吧。樓上的你很彪悍呀 o 哇 額 要我說 這方面的還是 金山打字 最強 求c語言編寫的打字母小遊戲,要求有多個字母掉落 10 用bioskey 函式實現 函式名 bioskey 功 能 直接使用bios服務的鍵盤介面 函式原型 int bioskey int cmd 說明 ... 對於三位數來說,只要百位和個位相同就是迴文數,根據此思路,寫程式如下 include int main 希望接納。o 努力!include include include void check int i if strcmp p,q 注意strcmp,該函式返回false如果兩個字串相等,true如... 在vc 下面,int和long長度一樣,都是32位的,double雖然是64位的,但是當作整型使用的話長度並不比int長,所以這裡還是使用int。int factorial int n 樓上的最多算到20!就該嗝屁了 正確的階層至少能處理20000!這點要靠大數乘法來做的 long f int n ...求 打字母 小遊戲 程式c語言,求C語言編寫的打字母小遊戲,要求有多個字母掉落
請用c語言編寫程式輸出100 999之間的所有迴文數
怎樣編求n 的程式,用C語言編寫程式 計算n!