#include?stdio.h
成都創(chuàng)新互聯(lián)主營鼓樓網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),鼓樓h5小程序開發(fā)搭建,鼓樓網(wǎng)站營銷推廣歡迎鼓樓等地區(qū)企業(yè)咨詢
int?search(int?a[],int?b,int?c,int?i)
{
int?x,y,z;
x=i+1;
z=b-1;
y=(x+z)/2;
while(x=z)
{
if(a[y]c)
{
z=y-1;
y=(x+z)/2;
continue;
}
if(a[y]c)
{
x=y+1;
y=(x+z)/2;
continue;
}
return?y+1;
}
return?-1;
}
int?main()
{
int?i,m,pos;
scanf("%d",m);
int?a[m];
for(i=0;im;i++)
{
scanf("%d",a[i]);
}
for(i=0;im;i++)
{
pos=search(a,m,a[i],i);
if(pos!=-1)
{
printf("FOUND?a[%d]=%d,?position?is?%d\n",i,a[i],i+1);
return?0;
}
}
if(pos==-1)
{
printf("NOT?FOUND\n");
}
return?0;
}
這種查找方法的數(shù)組必須是從小到大的,用遍歷的話就沒這個(gè)問題了。
#include stdio.h
void f()
{
}
void main()
{
printf("%u\n", f);
printf("%u\n", f);
printf("%p\n", f);
}
主函數(shù)中前兩行%u表示輸出無符號的十進(jìn)制,而第三行%p表示輸出地址,其結(jié)果是一個(gè)十六進(jìn)制的數(shù),你將其轉(zhuǎn)換成十進(jìn)制,你會發(fā)現(xiàn)與前兩行結(jié)果一樣。
#includestdio.h
#includestring.h
int?findstr(char?*s_str,char?*d_str);
int?main(void)?{
char?s1[80],s2[80];
int?n;
printf("請輸入一個(gè)字符串:");
gets(s1);
printf("請輸入你要查找的字符串:");
gets(s2);
n=findstr(s1,s2);
printf("%s在%s里共有%d個(gè)\n",s2,s1,n);
return?0;
}
int?findstr(char?*s_str,char?*d_str)?{
int?i,j,k,count=0;
char?temp[80];
int?length=strlen(d_str);
for(i=0;istrlen(s_str);i++)?{
k=0;
for(j=i;ji+length;j++)
temp[k++]=s_str[j];
temp[k]='\0';
if(!strcmp(temp,d_str))?count++;
}
return?count;
}
C代碼和運(yùn)行結(jié)果如下:
輸入5,成功輸出了其在給定數(shù)組中的下標(biāo)為4,結(jié)果正確,望采納~
附源碼:
#include stdio.h
int search(int a[], int n, int x) { // 返回?cái)?shù)組a[]中x的下標(biāo)
int i;
for (i = 0; i n; i++) {
? if (a[i] == x)
? ? ? return i;
}
return -1; // 數(shù)組中沒有x則返回-1
}
int main() {
int x, a[10] = {7,9,3,4,5,2,1,6,10,8};
scanf("%d", x); // 用戶輸入數(shù)x
printf("%d ", search(a, 10, x)); // 輸出x在數(shù)組中的下標(biāo)
return 0;
}
首先,指針默認(rèn)只有一個(gè)地址的長度的空間,存不了那么多的字符。
其次,傳值和傳地址一塌糊涂,完全就是亂寫么。
scanf的第二個(gè)參數(shù)是地址,如果本身不是指針則需要取址符。
我給你重寫了算了
#includestdio.h
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ù)組也可以*/
根據(jù)題意可得如下代碼:
#include?stdio.h
#include?string.h
struct?workers
{
char?type[30];
int?zj;
char?name[30];
};
int?findWorkerByTZ(struct?workers?a[],?int?n,?char?type[],?int?zj)
{
int?i;
for?(i?=?0;?i??n;?++i){
if?(strcmp(a[i].type,?type)?==?0??a[i].zj?==?zj){
return?i;
}
}
return?-1;
}
int?main()
{
struct?workers?a[10]?=?{{"teacher",?4,?"aa"},?{"student",?1,?"bb"},?{"teacher",?5,?"cc"}};
int?n?=?3;
int?index?=?findWorkerByTZ(a,?n,?"teacher",?4);
if?(index?==?-1){
printf?("not?found\n");
}
else?{
printf?("found?it?at?%d\n",?index);
}
return?0;
}
文章標(biāo)題:c語言查找地點(diǎn)函數(shù) 查找數(shù)字位置c語言
網(wǎng)址分享:http://muchs.cn/article24/docdoje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、企業(yè)建站、電子商務(wù)、小程序開發(fā)、Google、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(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)