首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数组中,讲最小的数与第一个交换,最大的与最后一个交换遇到的一个有关问题

2013-11-14 
数组中,讲最小的数与第一个交换,最大的与最后一个交换遇到的一个问题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;

热点排行