#include <stdio.h>
float buffer0[10]={0,-2,-2,-2,-2,-2,-2,-2,-2,3};
//冒泡排序
float bubbleSort(float buffer[], char n)
{
char i,j;
float temp;//交换数据使用
char flag = 0;//flag用来校验每轮循环有没有移动元素,0为没有移动,1为移动
float average = 0;
for (i = 0; i < n; ++i) //每次将一个元素送到末尾,n个元素,执行n次
{
flag = 0;
for (j = 0; j < n-i-1; ++j)//之前的循环已经将i个元素送到末尾,不需要再次比较,故减去,因为跟后一个元素比较,为了避免溢出,故减一
{
if (buffer[j] > buffer[j+1]) //如果当前的元素比后一个元素小,就交换
{
flag = 1;//有数据交换
temp = buffer[j];
buffer[j] = buffer[j+1];
buffer[j+1] = temp;
}
}
if (flag == 0)//没有数据交换,提前结束
break;
}
//计算平均值
for(i=1;i<n-1;i++)
average = average + buffer[i]/(n-2.0f);
return average;
}
int main(void)
{
float middle = 0;
middle = bubbleSort(buffer0,10);
printf("%f\r\n",middle);
return 0;
}
【无标题】
最新推荐文章于 2025-04-30 15:43:41 发布