❶ c語言里怎麼對一組CHAR類型的數組進行查找。。。。。。
/////////////////////////////////////////
// C-Free 4.1
// MinGW 3.4.5
// veket的小號
/////////////////////////////////////////
#include <stdio.h>
int FindChrInStr(char *);
int main()
{
char str1[] = "abcde";
char str2[] = "wxyzabc";
printf("%d\n", FindChrInStr(str1));
printf("%d\n", FindChrInStr(str2));
}
int FindChrInStr(char *s)
{
while(*s)
{
if('z'==*s)
{
break;
}
s++;
}
if(*s)
{
return 1;
}
else
{
return 0;
}
}
❷ 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;
}
(2)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函數逐個對數組元素賦值。
網路-數組
❸ 在c語言中,如何在數組中尋找一個指定的數數
使用單循環,從數組的第一個元素開始查找,遍歷整個數組,直到找到第一個所需的數就可以退出循環了。
❹ 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的地址。
❺ 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;
}
❻ C語言查找數組中的值
if(num[i]=search) 這句錯了,改成if(num[i]==search)
❼ C語言中怎麼查找字元串數組中的某個字元
程序有誤,修改如下:
#include <stdio.h>
#include <string.h>
void main(){
char sh[20];
gets(sh);
for(int i=0;i<20;i++)
{
if(sh[i]='@')
{
printf("判斷出有字元@ ");
break;
}
if(sh[i]='