数组中,讲最小的数与第一个交换,最大的与最后一个交换遇到的一个有关问题
数组中,讲最小的数与第一个交换,最大的与最后一个交换遇到的一个问题void max_min_value(int number[])//
数组中,讲最小的数与第一个交换,最大的与最后一个交换遇到的一个问题
void max_min_value(int number[]) //交换函数
{
int *max,*min,temp;
max=min=number;
for(p=number+1;p<number+10;p++)
{
if(*p>*max)max=p; //讲最大数赋给max
else if(*p<min)min=p;//将最小数赋给min
}
temp=number[0];number[0]=*min;*min=temp;
if(max=number)man=min; //如果第一个数刚好等于最大数 则使max仍指向该最大数
temp=number[9];number[9]=*max;*max=temp;
}
代码前面就是main方法和输入输出方法
输出结果:
input 10 number:32 23 56 78 1 98 36 44 29 6
Now,they are: 1 24 56 78 32 6 36 44 29 98
就是没弄懂 if(max=number)man=min; 这句
什么情况会出现第一个数等于最大数 还请大神举个栗子 谢谢
return 0; c
[解决办法] temp=number[0];number[0]=*min;*min=temp;
//这时number位置已经变成最小值了,min是原来number位置的值
if(max==number)man=min; //
如果原来number位置是最大值,现在min就是最大值 temp=number[9];number[9]=*max;*max=temp;