一、 请用递归算法求数组中前n个元素的平均值。 提示: 设ave(n)是求n个元素平均值的函数,根据递归算法 已知A【n】为整数数组,编写一个递归算法求其中n个元素的平均...

   www.gaoxiao88.net
(不必用递推关系,更高效,严格按照你的函数定义):
#include <stdio.h>

float ave(int n)
{
static int tag=n;
float t;
scanf("%lf",&t);
if(n==1)
return t;
else if(tag!=n)
return t+ave(n-1);
else
return (t+ave(n-1))/n;
}

int main()
{
printf("%f",ave(3));/* 输入三个数 回车,自动计算平均值 */
}

用C编写可以吗?
我假设有全局数组 a[] 平均值需要单精度实型的,那么可以有这个函数

float ave(int n)
{
int i;
float s=0;
for(i=1;i<=n;++i) s+=a[i];
s/=n; return s;
}

#include<stdio.h>

double ave( double* a, int n );

int main( void )
{
double b[] = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 };
double m = ave( b, 5 );
printf( "%f\n", m );

system( "pause" );
}

double ave( double* a, int n )
{
if( n == 0 )
{
return 0;
}
else
{
return ( ave( a, n - 1 ) * ( n - 1 ) + a[ n - 1 ] ) / n;
}
}
从0开始算。

三、请用递归算法求数组中前n个元素的平均值。

求最大: f(x) = max(f(x-1), x)
求和: g(x) = g(x-1) + x
求平均值:这个能递归么... 直接用和除以n吧..

#includeint a[100],n;float digui(int i){ if(i==-1)return 0; return 1.0/n*a[i]+digui(n-1);}int main(){ int ans,i; scanf("%d",&n); for(i=0;i<n;i++)scanf("%d",&a[i]); printf("%f",digui(n-1)); return 0;}

相关参考:

C程序设计 用递归的算法把数组中的N个数按颠倒的次序重新排放
这样就输出原数组的a[n-2],一直回溯回去,知道输出所有的数.下面是源程序:include<stdio.h> include<stdlib.h> define N 10 \/*数组元素个数定义,根据需要自己定义*\/ void fun1(int a[],int n) \/\/递归倒序输出数组元素 { if(n>1)fun1(&a[1],n-1);printf("%5d",a[0]);}...

...FF(int a【】,int n)”,求出数组a中所有n个元素之积并返回
int abc(int a[],int n){ if(n==0)return a[0];else return a[n-1]*abc(a[],n-2);} 或:int ff(int a[],int n){ int sum=0;int i for(i=0;i<n;i++){ sum+=a[i];} return sum;}

用递归算法求数组a【】中n个整数的平均值,n个整数之和
include <stdio.h> main(){ int n,t,a[100];\/\/暂定最大为100 printf("input array size:\\n");scanf("%d",&n);printf("input array [%d]:\\n",n);for(t=0;t<n;t++)scanf("%d",&a[t]);t=counter(a,n);\/\/只算一次,递归费时 printf("total: %d, average: %d",t,t\/n...

...FF(int a【】,int n)”,求出数组a中所有n个元素之积并返回
include<stdio.h>int FF(int a[],int n){if(n==1)return a[0]; return a[n-1]*FF(a,n-1);}int main(){int n=5,a[5]={1,2,3,4,5}; printf("%d\\n",FF(a,5)); return 0; }

C语言用递归方式求n个数的和
2013-11-10 在C语言中用递归调用的方法求n! 15 2015-03-20 用c语言,利用递归函数求n!,由键盘输入任一整数,求n! 4 2015-12-03 c语言,用递归方法求一个整数a的n次方 2010-06-04 C语言求N个数的最大值,递归算法 12 2014-12-15 C语言,编写函数,用递归方法求n个元素数组a的最大值 5 2015...

谁能解释一下用递归做的排列算法的详细步骤?参考王晓东的《计算机算 ...
用到递归的排序算法有快速排序和归并排序。快速排序:先选最开始的元素为枢轴,然后分别从两头中的一头开始与枢轴比较。后面的应该大于枢轴,前面的应该小于枢轴,不然则交换(前面与后面),最后确定下来的位置(前后重合)就是枢轴的位置。这样一来原序列就一分为二。不断递归,再一分为二,最后直到被...

...递归函数“int FF(int a[], int n)”,求出数组a中所有n个元素...
【答案】:#include "stdio.h"int FF(int a[],int n){ if(n==1) return a[0];else return a[0]*FF(a+1,n-1);} main(){ int n=5,s,a[5]={1,2,3,4,5};s=FF(a,n);printf("%d ",s);}

c语言用递归法求y=x+x2\/2!+x3\/3!…到第n项,n和x的值由键盘输入
*ans; printf("请输入N:\\n"); scanf("%d",&n); printf("请输入X(float):\\n"); scanf("%f",&x); ans=(float *)malloc((n+1)*sizeof(float)); fun(n,x,ans); for(int i=1;i!=(n+1);i++) { sum+=*(ans+i);...

C语言如何用数组求Fibonacci数列的前N项和
3、选择一个空的工程,完成。4、再次点击文件、新建,5、选择c++ source file 并输入文件名字,确定,6、输入如图所示的代码,这里以前十个斐波那契数列数为例,需要输出其他个数请把5改成对应数字的一半(比如要输出前20个,就把图中的5改成10);7、点击右上角的编译运行按钮。8、成功地输出了...

用递归法求斐波那契数列前40项。
用递归法求斐波那契数列前40项方法为: 1、首先,对非法下标进行判断。 2、定义出递归调用的出口n=1或n=2,直接返回1。 3、使用递归直接调用自身即可,不需要使用数组存储,而是使用压入栈 的数据。注意idea中侧边会显示递归的小圈。 4、添加测试函数,输出前5项与前10项。 5、测试结果如下。 注意事项: 斐波那契...

相关评论

  • 李邵2604: 一、 请用递归算法求数组中前n个元素的平均值. 提示: 设ave(n)是求n个元素平均值的函数,根据递归算法
    15247853998: (不必用递推关系,更高效,严格按照你的函数定义): #include &lt;stdio.h&gt; float ave(int n) { static int tag=n; float t; scanf("%lf",&amp;t); if(n==1) return t; else if(tag!=n) return t+ave(n-1); else return (t+ave(n-1))/n; } int main() { printf("%f",ave(3));/* 输入三个数 回车,自动计算平均值 */ }

  • 李邵2604: 用递归法求数组{2,5,8,1,3,6,9,0,7,4}中的最大值要求:只需要求出最大值,不需要给出最大值在数组中的位置. 写出解题思路,有必要的注释 - 作业帮
    15247853998:[答案] #include using namespace std; int getMax(int a[],int n,int max) { if(n return getMax(a,n-1,max>a[n-1]?max:a[n-1]); //递归调用 } int main() { int a[]={2,5,8,1,3,6,9,0,7,4}; //注意这里调用的参数,第一个是数组a,第一个是数组的大小n=10,第三个选一...

  • 李邵2604: Java数组问题.从键盘输入一组数据,然后请你用递归的方法求出数组元素中的所有元素的和 -
    15247853998: 完成签到任务 import java.util.Scanner; public class Test{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); int N=sc.nextInt(); int a[]=new int[N]; int max=Integer.MIN_VALUE, min=Integer.MAX_VALUE, sum=0; for(int i...

  • 相关话题

    ap在线精英在线最新简短笑话,好笑的段子,搞笑句子,男女朋友校园冷笑话,搞笑歌词对白台词,夫妻搞笑对话,手机流行笑话,逗人笑的动物经典笑话,最新幽默搞笑图文,好笑的视频分享给朋友
    若有事情,请联系电邮
    © <搞笑吧