#includestdio.h
創(chuàng)新互聯(lián)建站是一家從事企業(yè)網(wǎng)站建設、成都網(wǎng)站制作、網(wǎng)站建設、行業(yè)門戶網(wǎng)站建設、網(wǎng)頁設計制作的專業(yè)的建站公司,擁有經(jīng)驗豐富的網(wǎng)站建設工程師和網(wǎng)頁設計人員,具備各種規(guī)模與類型網(wǎng)站建設的實力,在網(wǎng)站建設領域樹立了自己獨特的設計風格。自公司成立以來曾獨立設計制作的站點超過千家。
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;i敏梁5;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;
}
只要遍歷數(shù)組
然后將每個元素與要查詢的值進行相減
取減得的絕對值最小的那個就是了
下面是一個簡單的代碼
#include?旁豎stdio.h
#include?stdlib.h
int?find(int?*a,int?n,int?x)
{
int?i;
int?min=abs(*a-x);
悄姿?int?r=0;
for(i=0;i??n;++i)
{
if(abs(a[i]-x)??min)
{
min=abs(a[i]-x);
r=i;
}
}
return?a[r];
}
int?main(int?argc,char?**argv)
{
int?a[20];
int?i;
啟啟絕???for(i=0;i??20;++i)
{
a[i]=rand()%20;
printf("%d?",a[i]);
}
printf("\n");
printf("與5最接近的數(shù)是:?%d\n",find(a,20,5));
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ù)組也滾消可以*/
(1)素數(shù)判斷函數(shù):是返回1,否則返回0
int?prime(int?n){
int?i;
if(n2??!(n1)?||?n2)
return?0;
for(i=3;i*i=n;i+=2)
if(!(n%i))
return?0;
return?1;
}
(2)編寫排序函數(shù)(冒泡排序、選擇尺余好排序)
void?bubbling(int?*p,int?n){//冒泡
int?i,j,k;
for(i=0;in;i++)
for(j=1;jn;j++)
if(p[j]p[j-1])
k=p[j],p[j]=p[j-1],p[j-1]=k;
}
void?select(int?*p,int?n){//選毀肆擇
int?i,j,k;
for(n--,i=0;in;i++){
for(k=i,j=k+1;j=n;j++)
if(p[k]p[j])
k=j;
if(k-i)
j=p[k],p[k]=p[i],p[i]=j;
}
}
(3)查找函數(shù),找到返回下標,否則返回-1
int?find(int?*p,int?n,int?x){//順序
int?i;
for(i=0;in;i++)
if(p[i]==x)
return?i;
return?-1;
}
int?fihalf(int?*p,int?n,int?x){//折半,升序為例
int?l,r,m;
l=0,r=n-1;
while(m=(l+r)1,lr??p[m]-x)
p[m]x???l=m+1?:?r=m-1;
return?p[m]==x???m?:?-1;
}
(4)插入函數(shù),升序為例陵鉛