一、 请用递归算法求数组中前n个元素的平均值。 提示: 设ave(n)是求n个元素平均值的函数,根据递归算法 已知A【n】为整数数组,编写一个递归算法求其中n个元素的平均...
#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、测试结果如下。 注意事项: 斐波那契...
相关评论
15247853998: (不必用递推关系,更高效,严格按照你的函数定义): #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));/* 输入三个数 回车,自动计算平均值 */ }
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,第三个选一...
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...