C++第四次实验-作业报告

项目1:数组素数排序

一、问题及代码

定义一个有10个的数组a,将数组a中的所有素数放在数组b,再对数组b排序。

[cpp]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. /*  
  2. * 文件名称:Ex4-1.cpp  
  3. * 作    者:程家琦  
  4. * 完成日期:2017 年 4 月 10 日  
  5. * 版 本 号:v1.0  
  6. * 对任务及求解方法的描述部分:定义一个有10个的数组a,将数组a中的所有素数放在数组b,再对数组b排序。 
  7. * 输入描述:无  
  8. * 问题描述:
  9. * 程序输出:输出数组b 
  10. * 问题分析:略 
  11. * 算法设计:略  
  12. */    
  13. #include <iostream>    
  14. using namespace std;    
  15. void sort(int p[], int n);    
    bool prime(int x);     
    void print(int p[],int n);//
    int main( )       
    {   int a[10]={2,13,5,47,19,53,27,23,28,11};    
        int b[10],i,j=0;    
        for(i=0;i<10;i++)    
        {    
            if(prime(a[i]))  
            {  
                b[j]=a[i],j++;  
            } 
        }    
        print(b,j);     
        sort(b,j);   
        print(b,j);    
            
        return 0;    
    }  
    void sort(int p[], int n)     
    {    
        int i,j=1,k;    
        for(i=0;i<n;i++)    
        {    
            for(j=0;j<n-i-1;j++)    
            {    
                if(p[j]>p[j+1]) k=p[j],p[j]=p[j+1],p[j+1]=k;    
            }    
        }    
    }    
          
    bool prime(int x)    
    {    
        int i;    
        for(i=2;i<x;i++)    
        {    
            if(x%i==0) return false;    
        }    
        return true;    
    }    
          
    void print(int p[],int n)      
    {    
        for(int i=0;i<n;i++)    
        {    
            cout<<p[i]<<" ";    
        }    
        cout<<endl;    
    }    
二、运行结果




项目2:奇偶阶乘

一、问题及代码

定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数。

[cpp]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. /*  
  2. * 文件名称:Ex4-2.cpp  
  3. * 作    者:程家琦  
  4. * 完成日期:2017 年 4 月 10 日  
  5. * 版 本 号:v1.0  
  6. * 对任务及求解方法的描述部分:定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数。 
  7. * 输入描述:  
  8. * 问题描述: 
  9. * 程序输出:数组a中所有的奇数的阶乘和和偶数的阶乘和 
  10. * 问题分析:略 
  11. * 算法设计:略  
  12. */    
  13. #include <iostream>
    using namespace std;
    int ji(int x)
    {
    if(x==1) return 1;
    return x*ji(x-1);
    }
    bool jis(int x)
    {
    if(x%2) return 1;
    return 0;
    }
    int main()
    {
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    int jsjch=0,osjch=0;
    for(int i=0;i<10;i++)
    {
    if(jis(a[i])) jsjch+=ji(a[i]);
    else osjch+=ji (a[i]);
    }
    cout<<"奇数阶乘和:"<<jsjch<<endl;
    cout<<"偶数阶乘和:"<<osjch<<endl;
    return 0;
    }


二、运行结果



项目4

一、问题及代码  

从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。其中求最大数、最小数和平均数用一个函数完成,统计大于平均数的个数用另一个函数完成。

[cpp]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. /*  
  2. * 文件名称:Ex4-4.cpp  
  3. * 作    者:程家琦
  4. * 完成日期:2017 年 4 月 10 日  
  5. * 版 本 号:v1.0  
  6. * 对任务及求解方法的描述部分:从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。其中求最大数、最小数和平均数用一个函数完成,统计大于平均数的个数用另一个函数完成。 
  7. * 输入描述:一个10个数的数组  
  8. * 问题描述:
  9. * 程序输出:这10个数的最大数、最小数和平均数,大于平均数的个数。 
  10. * 问题分析:略 
  11. * 算法设计:略  
  12. */    
  13. #include<iostream>  
    using namespace std;  
    //自定义函数的原型(即函数声明)  
    //由于一个函数只能返回一个值,如何要一个函数返回多个值用可用引用传递返回  
    double aver(int x[],int n,double &max,double &min);   
    //统计平均数的个数  
    int count(int x[],int n,double score);  
    double aver(int x[],int n,double &max,double &min)  
    {  
        double Ave=0.00;  
        max=x[0],min=x[0];  
        for(int i=0; i<n; i++)  
        {  
            Ave+=x[i];  
            if(x[i]>max) max=x[i];  
            if(x[i]<min) min=x[i];  
        }  
        return Ave/10;  
    }  
    int count(int x[],int n,double score)  
    {  
        int k=0;  
        for(int i=0; i<n; i++)  
        {  
            if(x[i]>score) k++;  
        }  
        return k;  
    }  
    int main()  
    {  
        int x[10]={4,6,8,16,19,14,5,10,1,21},i,num;  
        double averscore,max,min;  
        averscore=aver(x,10,max,min);  
        cout<<"最大数为:"<<max<<",最小数为:"<<min<<",平均数为:"<<aver(x,10,max,min)<<endl;  
        cout<<"大于平均数的数的个数为:"<<count(x,10,averscore)<<endl;  
        return 0;  
    }  

二、运行结果


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值