當前位置:首頁 » 編程語言 » c語言中的數組查找函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中的數組查找函數

發布時間: 2022-07-02 01:20:59

1. c語言數組的查找函數

#include<stdio.h>
int main()
{
int a[5];
int i,max,min;
printf("input number:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
max=a[0];
min=a[0];
for(i=0;i<5;i++){
if(a[i]>max)
max=a[i];
}
for(i=0;i<5;i++){
if(a[i]<min)
min=a[i];
}
for(i=0;i<5;i++){
printf("%d",a[i]);
printf(" ");
}
printf("\n");
printf("最大值為%d\n",max);
printf("最小值為%d\n",min);
return 0;
}

2. C語言查找數組中的數據

#define IntSize sizeof(int)
#define StructSize sizeof(struct tagresult)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef int *ptint;
typedef struct tagresult
{
int v;
char bl;
}*ptresult;

int lessthan(const void *v1,const void *v2)
{
int i1=*((ptint)v1),i2=*((ptint)v2);

if(i1==i2)
return 0;
else if(i1<i2)
return 1;
else
return -1;
}

int main()
{
int c,n,capacity=128,rlen=0,dlen;
ptint data=(ptint)calloc(capacity,IntSize);
ptresult result;

scanf("%d",&n);
result=(ptresult)calloc(n,StructSize);
memset(result,0,n*StructSize);
while(n-->0)
{
scanf("%d",&c);
dlen=0;
for(;c>0;c--)
{
if(dlen+1>=capacity)
{
capacity*=2;
data=(ptint)realloc(data,capacity);
}
scanf("%d",data+dlen++);
}
scanf("%d",&c);
//直接調用庫函數qsort進行快速排序,就不自己寫快速排序演算法函數了
qsort(data,dlen,IntSize,lessthan);
if(c<=dlen)
{
(*(result+rlen)).v=*(data+c-1);
(*(result+rlen)).bl=1;
}
rlen++;
}
for(n=0;n<rlen;n++)
{
if(1==(*(result+n)).bl)
printf("Case #%d:%d\n",n+1,(*(result+n)).v);
else
printf("Case #%d:-1\n",n+1);
}
free(data);
free(result);
return 0;
}

3. C語言一維數組中如何查找指定元素

1、打開pycharm,新建Test_List.py,如圖所示。

4. C語言 用指針編寫在數組中查找指定值指針的函數

不用萬分感謝,只要十分感謝即可。
對於函數:int* find(int a[], int value),其中a為整型數組首地址,value是被檢驗值。我們可以利用指針a間接引用數組第一個元素的值,並將其與value比較,比較完後,將指針向後移動,再通過間接引用的方式比較下一個元素值,依次下去,直到在整型數組中找到被檢驗值或者整型數組所有元素比較結束為止。
那麼這里有個問題,我們如何通過指針知到整型數組什麼時候結束呢?對於整型數組而言,沒有辦法,所以我們必須先知道整型數組的長度,可以在參數中給出,也可以在主函數定義中知曉。
程序如下:
int* find(int a[], int value)
{
int i=0,*p=a;
for(i=0;i<=9;i++)
{
if(*p==value)
return p;
else
p++;
}
if(i>=10)
return 0;
}
main()
{
int c[10]={1,2,3,4,5,6,7,8,9,0};
int n;
scanf("%d",&n);
printf("%x %d",find(c,n),*(find(c,n)));/*第一個為函數返回地址,第二個為函數返回地址里的值*/
getch();
}
另外,我們測試一個程序或者函數是否正確不在於其能否正確運行,而在於其運行的結果是否符合我們的預期。針對上述程序,測試方法如下:
輸入任意一個數,如果這個數在數組C內,看是否能夠列印出16進制的地址數和與輸入值相同的數;如果不在數組C內,看是否返回值為0的地址。

5. C語言題目:在數組中查找指定元素

#include <stdio.h>

#define MAXN 10

int search( int list[], int n, int x );

int main()

{

int i, index, n, x;

int a[MAXN];

printf("輸入個數: ");

scanf("%d",&n);

for( i = 0; i < n; i++ )

scanf("%d", &a[i]);

printf("輸入x: ");

scanf("%d", &x);

index = search( a, n, x );

if( index != -1 )

printf("index = %d ", index);

else

printf("Not found ");

return 0;

}

int search( int list[], int n, int x ){

int i;

for(i=0;i<n;i++){

if(x==list[i])

return i;

}

return -1;

}

(5)c語言中的數組查找函數擴展閱讀:

數組使用規則:

1.可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。

2.只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,資料庫是從1開始。

3.如不給可初始化的數組賦初值,則全部元素均為0值。

4.如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。例如:static int a[5]={1,2,3,4,5};可寫為:static int a[]={1,2,3,4,5};動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。

網路-數組

6. C語言題要求實現一個在數組中查找指定元素的簡單函數。(找錯誤)

改錯參考如下:
int search(int list[],int n,int x)
{
int i,index=-1;
for(i=0;i<n;i++)
if(list[i]==x){//注意是==
index=i;//既然都明白下標從0開始,有必要+1嗎?
break;
}
return index;//不返回值行嗎?
}

7. 如何用c語言編寫查詢數組中的元素

對於數組的查詢,其實就是對數組中數據做一個遍歷。

最常用的方法就是通過循環對數組中的元素逐個取值,並與參考值(要查詢的值)做比對,並處理結果。

下面是一個簡單的對一維數組進行查詢的樣例。

函數功能:對輸入的數組元素進行查詢,列印符合查詢值的元素位置,並返回查詢到的元素總數。

函數名:array_query

函數聲明: int array_query(int *a, int n, int v);

參數介紹:

a: 輸入的數組,類型為整型指針,表示整型數組。可以根據實際需要進行調整。

n:數組中現有元素的個數。

v:要查詢的元素值。

返回值:

整型,返回查詢到的元素個數。如果出錯返回-1。

實現代碼:

intarray_query(int*a,intn,intv)
{
inti,ret;

if(a==NULL||n<=0)return-1;//出錯處理
for(ret=i=0;i<n;i++)
{
if(a[i]==n)
{
printf("%d ",i);//找到元素,列印下標,並累計統計值
ret++;
}
}

returnret;//返回總數。
}

8. C語言實現整型數組中查找指定元素的函數

#include<stdio.h>
int search(int a[], int n, int searchValue) {
int i;
for(i=0; i<n; i++) if(a[i]==searchValue) return i;
return -1;
}
int main() {
int i;
int a[10],find,idx;
for(i=0; i<10; 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");
}

9. 如何用c語言的數組,來進行文字的查找

C語言中的標准函數庫中的strchr()函數可以實現查找字元串中的某個字元。頭文件: #include <string.h>函數原型:char *strchr(const char *s, int c);函數說明:從左向右,在字元串s中查找字元c首次出現的位置,如果找到返回c在s中的位置(指針),否則返回NULL例:<pre t="code" l="cpp">#include <stdio.h>
#include <string.h>
void main()
{
char str[]="hello world";
char *p=strchr(str, 'w');
if ( p )
printf("find 'w'!);
else
printf("not found!");
}相關函數:char *strrchr(const char *s, int c); 從右向左,查找s中最右邊的匹配字元位置char *strstr(const char *s, const char *sub); //在s中查找sub子串出現的位置