#includestdio.h
創(chuàng)新互聯(lián)公司成立與2013年,先為東遼等服務(wù)建站,東遼等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為東遼企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
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;
}
首先,指針默認只有一個地址的長度的空間,存不了那么多的字符。
其次,傳值和傳地址一塌糊涂,完全就是亂寫么。
scanf的第二個參數(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); /*申請一個內(nèi)存空間用來存放數(shù)據(jù),或者直接用一個大數(shù)組也可以*/
#include stdio.h
#define N 5 /*數(shù)組的大小*/
void input(int *a,int n)/*輸入函數(shù)*/
{
int *p=a;
while(pa+n)
scanf("%d",p++);
}
void output(int *a,int n)/*輸出函數(shù)*/
{
int *p=a;
while(pa+n)
printf("%d ",*p++);
printf("\n");
}
void isort(int *s,int n)/*排序函數(shù)*/
{
int i,j;
int *p,temp;
for(i=0;in-1;i++)
{
p=s+i;
for(j=i;jn;j++)
if(*ps[j])
p=s+j;
temp=*p;
*p=s[i];
s[i]=temp;
}
}
int binsh(int *a, int c, int low, int high)/*遞歸法實現(xiàn)的二分查找法,元素存在于a中則返回元素的第一個位置,不存在則返回-1*/
{
int mid=(high+low)/2;
if(lowhigh)
return -1;
if(ca[mid])
return binsh(a,c,mid+1,high);
else if(ca[mid])
return binsh(a,c,low,mid-1);
else
return mid;
}
int main()
{
int a[N],n;
input(a,N);/*輸入*/
isort(a,N);/*排序*/
output(a,N);/*輸出*/
scanf("%d",n);/*要查找的元素*/
printf("%d\n",binsh(a,n,0,N-1));/*存在的話打印位置,不存在的話打印-1*/
return 0;
}
有用的話,請樓主及時采納,謝謝