第四次作业

来源:互联网 发布:手机淘宝销量排名 编辑:程序博客网 时间:2024/06/07 23:54

一、

/*项目3:杨辉三解编写函数,形成n阶杨辉三角形。在主函数中调用该函数,形成杨辉三角形,并输出结果。输入阶数n,输出处理后的结果。*//**文件名称:杨辉三解.cpp*作    者:贾金铎*完成日期:2017年4月10日*对问题及求解方法的描述部分:*输入描述:n*问题描述:*程序输出:杨辉三角*问题分析:略*算法设计:略*/#include <iostream>using namespace std;void fun(int x);int main(){    int n;    cout<<"请输入杨辉三角的行数n: ";    cin>>n;    cout<<endl;    fun(n);    return 0;}void  fun(int n){    int i,j,a[20][20] = {0},m;for (i = 0;i < n;i++)   /**将每行第一个数字设定为 1 */     a[i][0]=1;for (i=1;i<n;i++)for (j = 1;j <= i;j++)  /**计算每一个值*/    a[i][j] = a[i-1][j-1] + a[i-1][j];for (i = 0;i < n;i++)  /**输出杨辉三角**/{m=n;for (m=n-i;m>1;m--)cout<<" ";for (j = 0;j <= i;j++)cout<<a[i][j]<<" ";cout<<"\n";    }cout<<"\n";}


运行结果


二、


/**文件名称:奇偶阶乘.cpp*作    者:贾金铎*完成日期:2017年4月10日*对问题及求解方法的描述部分:*输入描述:数组a[]*问题描述:*程序输出:奇偶阶乘和*问题分析:略*算法设计:略*/#include <iostream>using namespace std;int fun(int x);int main(){    int a[10],i;    int sum1=0,sum2=0;    cout<<"请输入数组a[]的十个数: ";    for(i=0;i<10;i++)    {        cin>>a[i];    }    cout<<endl;    for(i=0;i<10;i++)    {        if(a[i]%2==0)        {            sum1+=fun(a[i]);            ///        }        else        {            sum2+=fun(a[i]);            ///        }    }    cout<<"奇数的阶乘和为 "<<sum1<<endl;    cout<<"偶数的阶乘和为 "<<sum2<<endl;}int fun(int x){    int i,j=1;    for(i=1;i<=x;i++)    {        j*=i;    }    return j;}


运行结果



/**项目4:从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。其中求最大数、最小数和平均数用一个函数完成,统计大于平均数的个数用另一个函数完成。参考格式:**/#include <iostream>using namespace std;      /**自定义函数的类型**/double aver(double x[],int k,double *m,double *n,double averscore);      /**由于一个函数只能返回一个值,如何要一个函数返回多个值可用引用传递返回**/int count(double x[],int n,double score);               /**统计大于平均数的个数**/int main(){    double x[10]={4,6,8,16,19,14,5,10,1,21},max,min,i,num;    double averscore=0;    averscore=aver(x,10,&max,&min,averscore);    /** 用指针传递数值**/    num=count(x,10,averscore);    cout << "最大数为:" <<max<<"\t最小数为:"<<min<<"\t平均数为"<<averscore<<endl;    cout<<"比平均数大的个数为:"<<num<<endl;    return 0;}double aver(double x[],int k,double *m,double *n,double averscore=0){    *m=x[0];    *n=x[0];    for(int i=0;i<k;i++)    {        averscore+=x[i];        if(x[i+1]>x[i])        {            *m = x[i+1];        }        else        {           *n = x[i+1];        }    }    averscore=averscore/10.0;    return averscore;}int count(double x[],int n,double score){    int num,i;    num=0;    for(i=0;i<n;i++)    {        if(x[i]>score)          num++;    }    return num;}


0 0