從鍵盤輸入某班學生某門課的學號和成績(假設每班人數不超過40人),當輸入為負值時,表示輸入結束,試編程從鍵盤輸入一個學號,查找該學號學生的成績?
創新互聯公司主營牧野網站建設的網絡公司,主營網站建設方案,重慶APP開發公司,牧野h5小程序定制開發搭建,牧野網站營銷推廣歡迎牧野等地區企業咨詢【線性查找】 Linear Search
#include#define N 40
int ReadScore(int score[],long num[]);
int LinSearch(long num[],long x,int n);
int main()
{
int score[N],n,pos;
long num[N],x;
n=ReadScore(score,num);
printf("Total students are %d\n",n);
printf("input the searching ID:");
scanf("%ld",&x);
pos=LinSearch(num,x,n);
if(pos!=-1)
printf("score=%d",score[pos]);
else
printf("Not found!\n");
return 0;
}
int ReadScore(int score[],long num[])
{
int i=-1;
do{
i++;
printf("please input ID and score:");
scanf("%ld%d",&num[i],&score[i]);
}while(num[i]>0&&score[i]>=0);
return i;
}
int LinSearch(long num[],long x,int n)
{
int i;
for(i=0;i
【折半查找】 Binary Search
#include#define N 40
int ReadScore(long num[],int score[]);
int BinSearch(long num[],long x,int n);
int main()
{
int score[N],n,pos;
long num[N],x;
n=ReadScore(num,score);
printf("Total students is %d!\n",n);
printf("input the searching ID:\n");
scanf("%ld",&x);
pos=BinSearch(num,x,n);
if(pos!=-1)
printf("score=%d",score[pos]);
else
printf("Not found!");
return 0;
}
int ReadScore(long num[],int score[])
{
int i=-1;
do{
i++;
printf("please input student is ID and score:\n");
scanf("%ld%d",&num[i],&score[i]);
}while(num[i]>0&&score[i]>=0);
return i;
}
int BinSearch(long num[],long x,int n)
{
int mid,left=0,right=n-1;
while(left<=right)
{
mid=(left+right)/2;
if(x>num[mid])
left=mid+1;
else if(x
提示:mid為輸入數組的中間數個數,如果不能整除也沒關系,前后兩個數都可取
用折半查找效率要高一點
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
標題名稱:【C語言】用線性查找與折半查找的兩種方法查找成績-創新互聯
本文來源:http://vcdvsql.cn/article38/phppp.html
成都網站建設公司_創新互聯,為您提供域名注冊、定制開發、電子商務、企業建站、軟件開發、網站策劃
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯