标题:大家好,请教个关于求平均值的递归函数问题!
只看楼主
hei_ke2000
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-10-31
 问题点数:0 回复次数:3 
大家好,请教个关于求平均值的递归函数问题!
我的算法:
if (n==1)
t=a[0];
else
t=a[n-1]+Average(a,n-1);
t=t/n;
return t;
但老是调不对
原题如下:
设有整数序列a0,a1.......an-1,给出求平均值的递归函数,函数原型如下:
float Average(int a[],int n);
我的源代码:
#define M 10
void main()
{
float Average(int a[],int n);
int b[M],i;
float ave;
printf("请输入数组b:\n");
for (i=0;i<M;i++)
scanf("%d",&b[i]);
ave=Average(b,M);
printf("平均数是:%.2f\n",ave);
}
float Average(int a[],int n)
{
float t;
if (n==1)
t=a[0];
else
t=a[n-1]+Average(a,n-1);
t=t/n;
return t;
}
搜索更多相关主题的帖子: 平均值 递归 函数 
2007-11-04 15:29
overcome
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-3-11
得分:0 
正确的代码是这样的
#include<stdio.h>
#define M 10
void main()
{
float Average(int a[],int n);
int b[M],i;
float ave;
printf("请输入数组b:\n");
for (i=0;i<M;i++)
scanf("%d",&b[i]);
ave=Average(b,M);
ave=ave/M;
printf("平均数是:%.2f\n",ave);
}
float Average(int a[],int n)
{
float t;
if (n==1)
t=a[0];
else
t=a[n-1]+Average(a,n-1);
return t;
}
2007-11-04 16:42
wdq197
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-11-4
得分:0 
不明白啊
2007-11-04 16:59
jxj777
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-10-27
得分:0 

t=a[n-1]+Average(a,n-1);
t=t/n;
程序结束时,n=1,再除n已不是求平均值了

int m=n;
if (n==1)
t=a[0];
else
t=a[n-1]+Average(a,n-1);
t=t/m;
return t;


一个人的力量是缈小的....... 互帮互助才是出路
2007-11-04 20:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-183412-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.130915 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved