作业4:杨辉三角&奇偶阶乘&数组平均数

来源:互联网 发布:淘宝客订单部分退款 编辑:程序博客网 时间:2024/05/17 10:29

一、问题及代码

/**文件名:杨辉三角.cpp*作者:吴涛涛*完成日期:2017年4月10日*版本号:2.0*对任务及其完成方法的描述部分:*输入描述:无*问题描述:编写函数,形成n阶杨辉三角形。在主函数中调用该函数,形成杨辉三角形,并输出结果。输入阶数n,输出处理后的结果。*程序输出:*问题分析:略*算法设计:略*/#include<iostream>using namespace std;void yanghui(int x);int main(){    int x;    cout<<"请输入要形成的杨辉三角的层数:";    cin>>x;    yanghui(x);    return 0;}void yanghui(int x){    int a[x-1][x-1];    int i,j,k;    for(i=0;i<x;i++)    {        a[i][0]=1;        a[i][i]=1;    }    for(i=2;i<x;i++)    {        for(j=1;j<=i-1;j++)        {            a[i][j]=a[i-1][j-1]+a[i-1][j];        }    }    cout<<"该杨辉三角为:"<<endl;    for(i=0;i<x;i++)    {        for(j=0;j<=i;j++)            cout<<a[i][j]<<" ";        cout<<"\n";    }}


二、运行结果


一、问题及代码

/**文件名:奇偶阶乘.cpp*作者:吴涛涛*完成日期:2017年4月10日*版本号:1.0*对任务及其完成方法的描述部分:*输入描述:无*问题描述:定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数*程序输出:*问题分析:略*算法设计:略*/#include<iostream>using namespace std;bool panduan(int x);int fact(int );int main(){    int a[]={1,2,3,4,5,6,7,8,9,10};    int i,j,sum1=0,sum2=0;    for(i=0;i<10;i++)    {       cout<<a[i]<<"  ";       j=panduan(a[i]);       if(j)       {           sum1+=fact(a[i]);       }       else       {           sum2+=fact(a[i]);       }    }        cout<<endl;        cout<<"数组中所有奇数的阶乘和:"<<sum2<<endl;        cout<<"数组中所有偶数的阶乘和:"<<sum1<<endl;    return 0;}bool panduan(int x){    if(x%2==0)        return 1;    else        return 0;}int fact(int n){    if(n==0)        return(1);    else        return(fact(n-1)*n);}

二、运行结果


一、问题及代码

/**文件名:平均数个数.cpp*作者:吴涛涛*完成日期:2017年4月10日*版本号:1.0*对任务及其完成方法的描述部分:*输入描述:无*问题描述:从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。其中求最大数、最小数和平均数用一个函数完成,统计大于平均数的个数用另一个函数完成。*程序输出:*问题分析:略*算法设计:略*/#include<iostream>using namespace std;double aver(int a[],int h,int &m,int &n);int count(int a[],int h,double score);int main(){    int a[10];    cout<<"请输入一个十个数的数组中间用空格隔开:";    for(int x=0;x<10;x++)    {        cin>>a[x];    }    int max,min,i,h;    double averscore;    cout<<"数组x的元素:";    for(i=0;i<10;i++)        cout<<a[i]<<" ";    cout<<endl;    max=a[0];    min=a[0];    averscore=aver(a,10,max,min);    cout<<"最大数为:"<<max<<'\t'<<"最小数为:"<<min<<'\t'<<"平均数为:"<<averscore<<endl;    h=count(a,10,averscore);        cout<<"大于平均数有"<<h<<"个";    return 0;}double aver(int a[],int h,int &m,int &n){    int i,num=0;    for(i=0;i<h;i++)    {        num+=a[i];        if(a[i]>m)            m=a[i];        if(a[i]<n)            n=a[i];    }    return num/h;}int count(int a[],int h,double score){    int k=0;    for(int i=0;i<h;i++)    {        if(a[i]>score)            k++;    }    return k;}

二、运行结果


0 0