c++第四次作业

来源:互联网 发布:大数据视频 百度云盘 编辑:程序博客网 时间:2024/05/20 05:58
  1. /*    
  2. *文件名称:4.cpp      
  3. *作者:徐浩宁     
  4. *完成日期:2017年4月10日      
  5. *对任务及求解方法的描述部分:      
  6. *输入描述:无      
  7. *问题描述:  定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数。  
  8. *程序输出:
  9. *问题分析:略      
  10. *算法分析:略     
  11. */ 
  12.   #include<iostream> 
    using namespace std; 
    bool istrue(int x); 
    long fac(int x);   
    int main() 

        int a[10]={3,5,6,2,4,8,9,10,15,11}; 
        int i,j,k,sum1,sum2=0,n; 
        int b[10],c[10]; 
        for(i=0;i<10;i++) 
        { 
            if(istrue(a[i]))
                b[j++]=a[i]; 
            else           
                c[k++]=a[i]; 
        } 
        for(i=0;i<j;i++) 
        { 
            n=fac(b[i]); 
            sum1+=n; 
        } 
        for(i=0;i<k;i++) 
        { 
            n=fac(c[i]); 
            sum2+=n; 
        } 
        cout<<sum1<<"\t"<<sum2<<endl; 
        return 0; 

    bool istrue(int x) 

        if(x%2==0) 
            return true; 
        else 
            return false; 

    long fac(int x) 

        long p; 
        if(x==0) 
            p=1; 
        else 
            p=x*fac(x-1); 
        return p; 
  13. 二.运算结果
  14.  
  1. /*    
  2. *文件名称:4.cpp      
  3. *作者:徐浩宁     
  4. *完成日期:2017年4月10日      
  5. *对任务及求解方法的描述部分:      
  6. *输入描述:无      
  7. *问题描述:编写函数,形成n阶杨辉三角形。在主函数中调用该函数,形成杨辉三角形,并输出结果。输入阶数n,输出处理后的结果。
  8. *程序输出:
  9. *问题分析:略      
  10. *算法分析:略     
  11. */ 
  12. #include<iostream> 
    using namespace std; 
    void yanghui(int n);
    int main() 

        int n; 
        cout<<"Input the N\nN=";cin>>n; 
        yanghui(n); 
        return 0; 

    void yanghui(int n) 

        int i,j; 
        int a[20][41]; 
        for(i=0;i<n;i++) 
        { 
            a[i][0]=1; 
            a[i][i]=1; 
        } 
        for(i=2;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++) 
        { 
            for(j=0;j<n-i;j++) 
                cout<<" "; 
            for(j=0;j<=i;j++) 
                cout<<a[i][j]<<" "; 
            cout<<"\n"; 
        } 
     
     

  13. 二.运算结果
  1. /*    
  2. *文件名称:4.cpp      
  3. *作者:徐浩宁     
  4. *完成日期:2017年4月10日      
  5. *对任务及求解方法的描述部分:      
  6. *输入描述:无      
  7. *问题描述:从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。 其中求最大数、最小数和平均数用一个函数完成,统计大于平均数的个数用另一个函数完成。 
  8. *程序输出:按要求写出程序   
  9. *问题分析:略      
  10. *算法分析:略     
  11. */  
  12.   #include<iostream> 
    using namespace std; 
    double aver(int x[],int n,int &m,int &n1); 
    int count(int x[],int n,double score);  
    int main() 

        int x[10]={4,6,8,16,19,14,5,10,1,21},max,min,num; 
        double averscore; 
        averscore=aver(x,10,max,min); 
        cout<<"最大数为:"<<max<<",最小数为:"<<min<<",平均数为:"<<averscore; 
        num=count(x,10,averscore); 
        cout<<"\n超过平均数的个数为:"<<num<<endl; 
        return 0; 

    double aver(int x[],int n,int &m,int &n1) 

        double ave,sum=0; 
        int i; 
        m=n1=x[0]; 
        for(i=0;i<n;i++) 
        { 
            sum+=x[i]; 
            if(x[i]>m) 
                m=x[i]; 
            else if(x[i]<n1) 
                n1=x[i]; 
        } 
        ave=sum/n; 
        return ave; 

    int count(int x[],int n,double score) 

        int num=0; 
        for(int i=0;i<n;i++) 
        { 
            if(x[i]>score) 
                num++; 
        } 
        return num; 
  13. 二.运算结果 



0 0