c++第四次实验作业(2,3,4)

2、

一、问题及代码:

/*  
*文件名称:奇偶阶乘 
*作    者:贺南鹏 
*完成日期:2017.4.10  
*版 本 号:v6.0  
*对任务及求解方法描述部分:  
*输入描述:  
*问题描述:  
*程序输出:  
*问题分析:定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数:  
*算法设计: 
*/
#include<iostream>  
using namespace std;    
int judge(int x);  
int jie(int p[],int y);  
int main()  
{  
    int a[10],b[10],c[10];  
    int i,j=0,k=0;  
    cout<<"请输入十个整数";  
    for(i=0;i<10;i++)  
    {  
        cin>>a[i];  
    }  
    for(i=0;i<10;i++)  
    {  
         if(judge(a[i])==1)  
             b[j++]=a[i];  
         else if(judge(a[i])==2)  
             c[k++]=a[i];  
    }  
    cout<<"奇数的阶乘是多少:"<<jie(b,j)<<endl;  
    cout<<"偶数的阶乘是多少:"<<jie(c,k)<<endl;    
    return 0;  
}  
int judge(int x)  
{  
    if(x%2==0)  
        return 2;  
    else  
        return 1;  
}  
int jie(int p[],int y)  
{  
    int i,res=1;  
    for(i=0;i<y;i++)  
        res=res*p[i];  
    return res;  
}
二、运行结果:


3、

一、问题及代码:

/*  
* 文件名称:c++第4次实验上机 项目3:杨辉三角  
* 作者:贺南鹏   
* 完成日期:2017.4.10   
* 版本号:5.11   
* 对任务及求解方法的描述部分: 
* 输入描述:略  
* 问题描述:略  
* 程序输出:略
* 问题分析:  
*算法设计:   
*/ 
#include<iostream>  
using namespace std;  
void YHSJ(int n);  
int main()  
{  
    int n;  
    cout<<"输入杨辉三角层数:";  
    cin>>n;  
    YHSJ(n);   
    return 0;  
 }   
 void YHSJ(int n)  
 {  
    int i,j,a[17][17]={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];    
        cout<<a[i][j]<<' ';   
    }  
    cout<<endl;  
   }  
 }  
二、运行结果:


4、

一、问题及代码:

/*  
*文件名称:10个数的数组 
*作    者:贺南鹏  
*完成日期:2017.4.10  
*版 本 号:v6.0  
*对任务及求解方法描述部分:  
*输入描述:  
*问题描述:  
*程序输出:  
*问题分析:从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。其中求最大数、最小数和平均数用一个函数完成, 
           统计大于平均数的个数用另一个函数完成。  
*算法设计: 
*/
#include<iostream>    
using namespace std;    
double aver(int x[],int n,int *,int *);      
int count(int x[],int n,double ave);    
int main()    
{    
    int x[10]={4,6,8,16,19,14,5,10,1,21},max,min,num;    
    double ave;    
    max=x[0];  
    min=x[0];  
    ave=aver(x,10,&max,&min);   
    num=count(x,10,ave);  
    cout<<"最大数为:"<<max<<"\n"<<"最小数为:"<<min<<"\n"<<"平均数为:"<<ave<<"\n"<<"大于平均数的个数为:"<<num<<endl;    
    return 0;    
}    
double aver(int x[],int n,int *a,int *b)  
{  
    int i,sum=0;  
    double ave;  
    for(i=0;i<n;i++)  
    {  
        if(x[i]>*a)  
            *a=x[i];  
        if(x[i]<*b)  
            *b=x[i];  
        sum+=x[i];  
    }  
    ave=sum/10.0;  
    return ave;  
}  
int count(int x[],int n,double ave)  
{  
    int num=0,i;  
    for(i=0;i<n;i++)  
        if(x[i]>ave)  
            num++;  
        return num;  
}   
二、运行结果:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值