題目大意
給出一組互不相同的數,在其中找出指定某個數的下標位置,若找不到則輸出-1
思路
本題資料量不大,可以直接用遍歷查詢
鑑於這是在二分下面的題目,也可以用二分做
過程中犯的錯誤
一開始因為被小結名稱——二分給影響了,一心使用二分。就想當然的排序,之後二分查詢,提交錯了好多遍都沒意識到自己已經把數字的原順序給改變了。
有被自己蠢到
**1 遍歷
//輸入乙個數n,然後輸入n個數值各不相同,再輸入乙個值x,輸出這個值在這個陣列中的下標(從0開始,若不在陣列中則輸出-1)
#include
#include
#include
#include
using namespace std;
intmain()
;while
(scanf
("%d"
,&n)
!=eof
)printf
("%d\n"
,k);
}return0;
}
**2 二分
#include
#include
#include
#include
using namespace std;
struct myp[
201]
;bool cmp
(my s,my q)
intfindx
(my *a,
int left,
int right,
int x)
return-1
;}intmain()
scanf
("%d"
,&x)
;sort
(p,p+n,cmp)
;printf
("%d\n"
,findx
(p,0
,n-1
,x));}
return0;
}
題目大意
給一組數,找出其中極值的下標值並輸出,若無則不輸出任何
題目思路
遍歷判斷,首尾兩數單獨判斷
**
#include
#include
#include
#include
using namespace std;
intmain()
for(
int i=
1;i1;i++)}
if(a[k-1]
!=a[k-2]
)if(flag)
printf
("\n");
}}return0;
}
題目大意
已知n個數的乙個陣列,再給m個數,判斷這m個數是否存在n個數中,存在輸出yes,不存在輸出no
題目思路
遍歷m個數,進行二分查詢(二分需要將n個數先進行重排序)
**
#include
#include
#include
#include
using namespace std;
intfindx
(int
*a,int left,
int right,
int x)
return-1
;}intmain()
for(
int i=
0;i)else}}
return0;
}
演算法筆記Codeup練習C語言11 1
題目描述 完成乙個對候選人得票的統計程式。假設有3個候選人,名字分別為li,zhang和fun。使用結構體儲存每乙個候選人的名字和得票數。記錄每一張選票的得票人名,輸出每個候選人最終的得票數。結構體可以定義成如下的格式 struct person leader 3 輸入第一行有乙個整數n,表示以下有...
演算法筆記Codeup練習C語言11 7
題目描述 編寫兩個函式input和print,分別用來輸入5個學生的資料記錄和列印這5個學生的記錄。對於每乙個學生,其記錄包含了學號 名字 3門課程的成績共5項。用主函式分別呼叫input和print函式進行輸入和輸出。要求使用結構體陣列實現,結構體中包括了每個學生的5項記錄。輸入共有5行,每行包含...
演算法筆記Codeup練習C語言11 8
題目描述 有10個學生,每個學生的資料報括學號 姓名 3門課程的成績。讀入這10個學生的資料,要求輸出3門課程的總平均成績,以及個人平均分最高的學生的資料 包括學號 姓名 3門課程成績 平均分數 輸入共有10行,每行包含了乙個學生的學號 整數 名字 長度不超過19的無空格字串 和3門課程的成績 0至...