在这段代码中增加一个数组形参:float filter(float input) { float average=0; float filter_mirror[10]={0},buff=0; static float filter_buf[10]={0}; unsigned char i=0,j=0; for(i=9;i>0;i--)// { filter_buf[i]=filter_buf[i-1];//入队列 printf("-----%.1f\n",filter_buf[i]); } printf("////////////\n"); filter_buf[0]=input;//第一次输入队列的值 for(i=0;i<10;i++) { filter_mirror[i]=filter_buf[i];// printf("*****%.1f\n",filter_mirror[i]); } for(i=0;i<9;i++)//冒泡排序大到小 { for(j=i+1;j<10;j++) { if(filter_mirror[i]<filter_mirror[j]) { buff=filter_mirror[i]; filter_mirror[i]=filter_mirror[j]; filter_mirror[j]=buff; } } } for(i=0;i<10;i++)// { average+=filter_mirror[i]; } return average; //VC6.0不懂为什么返回不了浮点 }
时间: 2024-03-01 09:52:36 浏览: 65
可以按照以下方式增加一个数组形参:
```
float filter(float input, float filter_array[])
{
float average=0;
float filter_mirror[10]={0},buff=0;
static float filter_buf[10]={0};
unsigned char i=0,j=0;
for(i=9;i>0;i--)
{
filter_buf[i]=filter_buf[i-1];
printf("-----%.1f\n",filter_buf[i]);
}
printf("////////////\n");
filter_buf[0]=input;
for(i=0;i<10;i++)
{
filter_mirror[i]=filter_buf[i];
printf("*****%.1f\n",filter_mirror[i]);
}
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(filter_mirror[i]<filter_mirror[j])
{
buff=filter_mirror[i];
filter_mirror[i]=filter_mirror[j];
filter_mirror[j]=buff;
}
}
}
for(i=0;i<10;i++)
{
average+=filter_mirror[i];
}
filter_array = filter_mirror; // 将排序后的数组赋值给形参
return average;
}
```
这里增加了一个形参 `float filter_array[]`,用于存储排序后的数组。在函数内部将排序后的 `filter_mirror` 赋值给 `filter_array`,并在函数结束时返回 `average`。
阅读全文