對于數(shù)組的查詢,其實(shí)就是對數(shù)組中數(shù)據(jù)做一個(gè)遍歷。
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供齊河網(wǎng)站建設(shè)、齊河做網(wǎng)站、齊河網(wǎng)站設(shè)計(jì)、齊河網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、齊河企業(yè)網(wǎng)站模板建站服務(wù),十多年齊河做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
最常用的方法就是通過循環(huán)對數(shù)組中的元素逐個(gè)取值,并與參考值(要查詢的值)做比對,并處理結(jié)果。
下面是一個(gè)簡單的對一維數(shù)組進(jìn)行查詢的樣例。
函數(shù)功能:對輸入的數(shù)組元素進(jìn)行查詢,打印符合查詢值的元素位置,并返回查詢到的元素總數(shù)。
函數(shù)名:array_query
函數(shù)聲明: int array_query(int *a, int n, int v);
參數(shù)介紹:
a: 輸入的數(shù)組,類型為整型指針,表示整型數(shù)組??梢愿鶕?jù)實(shí)際需要進(jìn)行調(diào)整。
n:數(shù)組中現(xiàn)有元素的個(gè)數(shù)。
v:要查詢的元素值。
返回值:
整型,返回查詢到的元素個(gè)數(shù)。如果出錯(cuò)返回-1。
實(shí)現(xiàn)代碼:
int?array_query(int?*a,?int?n,?int?v)
{
int?i,ret;
if(a?==?NULL?||?n?=?0)?return?-1;?//出錯(cuò)處理
for(ret?=?i?=?0;?i??n;?i?++)
{
if(a[i]?==?n)
{
printf("%d\n",?i);//找到元素,打印下標(biāo),并累計(jì)統(tǒng)計(jì)值
ret?++;
}
}
return?ret;//返回總數(shù)。
}
#includestdio.h
int search(int a[], int n, int searchValue) {
int i;
for(i=0; in; i++) if(a[i]==searchValue) return i;
return -1;
}
int main() {
int i;
int a[10],find,idx;
for(i=0; i10; i++) {
printf("Input a[%d]:",i);
scanf("%d",a[i]);
}
printf("Input searchValue:");
scanf("%d",find);
idx=search(a,10,find);
if(idx!=-1) printf("pos=%d",idx);
else printf("not found");
}
首先,指針默認(rèn)只有一個(gè)地址的長度的空間,存不了那么多的字符。
其次,傳值和傳地址一塌糊涂,完全就是亂寫么。
scanf的第二個(gè)參數(shù)是地址,如果本身不是指針則需要取址符。
我給你重寫了算了
#include
int
retrieve(int
array[],int
length,int
x);/*形參x直接傳值就可以了*/
int
main()
{
int
*a,x;
int
length,i;
scanf("%d",length);
a
=
(int)malloc(sizeof(int)*length);
/*申請一個(gè)內(nèi)存空間用來存放數(shù)據(jù),或者直接用一個(gè)大數(shù)組也可以*/
文章標(biāo)題:函數(shù)查找元素c語言 函數(shù)查找元素c語言怎么寫
當(dāng)前網(wǎng)址:http://jinyejixie.com/article46/dosdhhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、ChatGPT、網(wǎng)站改版、網(wǎng)站制作、域名注冊、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)