答案是这样的:
#include<stdio.h>
void main()
{void input(int *);
void max_min_value(int *);
void output(int *);
int number[10];
input(number);
max_min_value(number);
output(number);
}
void input(int number)
{int i;
printf("input 10 numbers:");
for(i=0;i<10;i++)
scanf("%d",&number[i]);
}
void max_min_value(int number)
{int *max,*min,*p,temp;
max=min=number;
for(p=number+1;p<number+10;p++)
if(*p>*max)max=p;
else if(*p<*min)min=p;
temp=number[0];number[0]=*min;*min=temp;
temp=number[9];number[9]=*max;*min=temp;
}
void output(int number)
{int *p;
printf(Now,they are: ");
for(p=number;p<number+10;p++)
printf("%d",*p);
printf("\n");
}
max=min=number;
这一步按我的理解是先把数组的第一个数给min,然后把min再把max,等于说把一个数先赋给min(一个最小的数),然后再把这个最小的数赋给max(最大的数),这样最大的数又变成最小的数了,搞糊涂了.高手能解释一下这不什么意思吗?和后面有什么联系吗?谢谢!
[此贴子已经被作者于2006-8-7 20:12:57编辑过]