回复 3楼 gaolongtou
你希望既能找出最大的值,又能得到这个最大的值的名字——你可以用一个结构体来描述。这个结构体既包含其值又包含其名字。
如果你只是找最大值,那么不必要用冒泡法,一次循环就够了。
如果你又要找最大值,又要找次大值,你只需要再多加一个变量来记录次大。比如:
//定义两个变量来保存最大值和次大值
struct element max, secondary_max;
//在一次循环中比较,arr[]是结构体数组,每个元素都包含值和名字
for(i=0;i<MAX-1;i++)
{
if(arr[i+1]>arr[i])
{
secondary_max.data = max.data; //把上一次的最大值传给secondary_max
secondary_max.name = max.name; //名字也是
max.data=arr[i+1].data; //记录新的最大值
max.name=arr[i+1].name;
//还有新的最大值的名字
}
}
如果你还要找最小值,也是差不多的手法,加个变量来记录就好了。