将数组中最小的数与第一个数对换
自己写的代码,编译没通过 ,求大神指点啊!
#include<stdio.h>
int main()
{
void enter(int *p,int n);
void change(int *p,int n);
void print(int *p,int n);
int a[10],*p=a;
enter(p,10);
p=a;
change(p,10);
p=a;
print(p,10);
printf("\n");
return 0;
}
void enter(int *p,int n)
{
int i;
printf("please enter %d numbers:\n",n);
for(i=0;i<10;i++)
scanf("%d",p++);
}
void change(int *p,int n)
{
int i,j=0,t,min,max;
min=*p;
for(i=0;i<n;i++)
if(*(p+i)<min)
{
min=*(p+i);
j=i;
}
t=*p;
*p=*(p+i);
*(p+i)=t;
}
void print(int *p,int n)
{
int i;
for(i=0;i<10;i++,p++)
printf("%d ",*p);
} 11
[解决办法]
void change(int *p,int n)
{
int i,j=0,t,min,max;
min=*p;
for(i=0;i<n;i++)
if(*(p+i)<min)
{
min=*(p+i);
j=i;
}
t=*p;
*p=min;
*(p+j)=t;//楼主大意,把j写成i了!
}