首先,指針默認(rèn)只有一個(gè)地址的長(zhǎng)度的空間,存不了那么多的字符。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了宣漢免費(fèi)建站歡迎大家使用!
其次,傳值和傳地址一塌糊涂,完全就是亂寫(xiě)么。
scanf的第二個(gè)參數(shù)是地址,如果本身不是指針則需要取址符。
我給你重寫(xiě)了算了
#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); /*申請(qǐng)一個(gè)內(nèi)存空間用來(lái)存放數(shù)據(jù),或者直接用一個(gè)大數(shù)組也可以*/
用strstr這個(gè)函數(shù)
包含文件:string.h
函數(shù)名: strstr
函數(shù)原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出現(xiàn)的位置(不包括str2的串結(jié)束符)。
返回值:返回該位置的指針,如找不到,返回空指針。
#include stdio.h
int search(int arr[],int len,int num)//arr為序列,len為序列長(zhǎng)度,num為要查找的數(shù)
{
int start,end,mid;
start=0;
end=len-1;
mid=(start+end)/2;
while(start=end)
{
if(arr[mid]num)
{
end=mid-1;
mid=(start+end)/2;
continue;
}
if(arr[mid]num)
{
start=mid+1;
mid=(start+end)/2;
continue;
}
return mid+1;
}
return -1;
}
int main()
{
int a[100],i,m,num,pos;
printf("輸入序列長(zhǎng)度:");
scanf("%d",m);
printf("輸入一個(gè)長(zhǎng)度為%d的有序序列:\n",m);
for(i=0;im;i++)
{
scanf("%d",a[i]);
}
printf("輸入你要查找的數(shù):");
scanf("%d",num);
pos=search(a,m,num);
if(pos==-1)
printf("未能在序列中找到你要查找的數(shù)。\n");
else
printf("你要查找的數(shù)在第%d個(gè)位置\n",pos);
return 0;
}
#includestdio.h
int main()
{
int a[5];
int i,max,min;
printf("input number:\n");
for(i=0;i5;i++)
scanf("%d",a[i]);
max=a[0];
min=a[0];
for(i=0;i5;i++){
if(a[i]max)
max=a[i];
}
for(i=0;i5;i++){
if(a[i]min)
min=a[i];
}
for(i=0;i5;i++){
printf("%d",a[i]);
printf(" ");
}
printf("\n");
printf("最大值為%d\n",max);
printf("最小值為%d\n",min);
return 0;
}