这题怎么做啊,求解答

 我来答
天上一堆星
2013-08-05 · 超过32用户采纳过TA的回答
知道答主
回答量:64
采纳率:100%
帮助的人:77.6万
展开全部
#include "stdio.h"
#include "stdlib.h"

void input(float b[], int m) {
int i;
for(i=0;i<m;++i) {
scanf("%f", &b[i]);
}

}

void average(float b[], int m) {
int i;
int head = 0, tail = m-1, key = b[0];
float avg = 0, sum = 0;
for(i=0;i<m;++i) {
sum += b[i];
}
avg = sum/m;
//重新排列
while(head < tail) {
while(head < tail && b[tail] >= avg) tail--;
b[head] = b[tail];
while(head < tail && b[head] <= avg) head ++;
b[tail] = b[head];
}
b[tail] = key;
}

void print(float b[], int m) {
FILE *fw;
fw = fopen("myf3.out", "w+");
int i;
for(i=0;i<m;++i) {
//printf("%f ", b[i]);
fprintf(fw, "%f ", b[i]);
}
//printf("\n");
fclose(fw);
}
void main() {
int m = 9;
float b[9];
//float b[] = {1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3};
input(b, 9);
average(b, 9);
print(b, 9);
}
l79226479
2013-08-05 · 超过20用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:67.8万
展开全部
#include<stdio.h>
void input(float b[],int);
void average(float [],int);
void print(float [],int);
int main()
{
    float a[1000];
    int n=9;//指定数据个数
    input(a,n);
    average(a,n);
    print(a,n);
}
void input(float b[],int n)
{
    int i;
    FILE *fp=freopen("myf3.in","r",stdin);
    for(i=0;i<n;i++)
        scanf("%f",&b[i]);
        fclose(fp);
}
void average(float b[],int n)
{
    float sum=0;
    int i;
    for(i=0;i<n;i++)
        sum+=b[i];
    float ave=sum/n,tp;
    FILE * fp=freopen("myf3.out","w",stdout);
    printf("%f\n",ave);
    fclose(fp);
    for(i=0;i<n;i++)
        if(b[i]>ave)
        {
            int j;
            for(j=i+1;j<n && b[j]>ave;j++);
            if(j<n) tp=b[j],b[j]=b[i],b[i]=tp;
            else return ;
        }
}
void print(float b[],int n)
{
    FILE * fp=freopen("myf3.out","a",stdout);
    for(int i=0;i<9;i++)
        printf("%f ",b[i]);
    fclose(fp);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a8636522
2013-08-04
知道答主
回答量:2
采纳率:0%
帮助的人:2880
展开全部
先求数组平均值,建立数组A和数组B,将原来数组中小于平均值的元素存入数组A,大于平均值元素存入数组B,将A和B连接成一个数组即可。
追问
可这要用分三个函数来完成啊,怎么做到?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式