/******************************************************************************************* ** 函 数名 称: NumberSortAndChange() ** 作 者: zyh ** 版 本: 1.0.0 ** 日 期: 2011-6-20 ** 功 能 描 述: 输入若干个数,将最小的数和第一个数交换,最大的数和最后一个数交换,然后输出 ** 被本函数调用的函数清单: ** 调用本函数的函数清单: ** 被访问的表: ** 被修改的表 : ** 输 入: int array_in[] --- 输入N个数,放在数组中 int total --- 数组元素个数 ** 输 出: int array_out[] --- 处理结果 ** 返 回 值: 无 ** 其 他: ** 修 改 历史: 1. 修改时间: 修 改 者: 版 本: 修改简述: 2. ...... *********************************************************************************************/ void NumberSortAndChange(int array_in[],int array_out[],int total) { int liv_i; /* 找小数,控制变量 */ int liv_j; /* 找大数,控制变量 */ int min_element; /* 最小的数 */ int max_element; /* 最大的数 */ int subscript_min; /* 最小数的下标 */ int subscript_max; /* 最大数的下标 */ for (liv_i = 0; liv_i < total; liv_i++) { min_element = array_in[0]; if (array_in[liv_i] < min_element) { min_element = array_in[liv_i]; subscript_min = liv_i; } } for (liv_j = 0; liv_j < total; liv_j++) { max_element = array_in[0]; if (array_in[liv_j] > max_element) { max_element = array_in[liv_j]; subscript_max = liv_j; } } array_in[0] = array_in[0] ^ min_element; /* 最小的数和第一个数交换 */ min_element = array_in[0] ^ min_element; array_in[0] = array_in[0] ^ min_element; array_in[total - 1] = array_in[total - 1] ^ max_element; /* 最大的数和最后一个数交换 */ max_element = array_in[total - 1] ^ max_element; array_in[total - 1] = array_in[total - 1] ^ max_element; for (liv_i = 0; liv_i < total; liv_i++) { array_out[liv_i] = array_in[liv_i]; } }