您的位置:首页 > 编程语言 > C语言/C++

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

2017-04-10 15:05 337 查看
项目1:数组素数排序

一、问题及代码

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

[cpp] view
plain copy

 

 





/*  

* 文件名称:Ex4-1.cpp  

* 作    者:程家琦  

* 完成日期:2017 年 4 月 10 日  

* 版 本 号:v1.0  

* 对任务及求解方法的描述部分:定义一个有10个的数组a,将数组a中的所有素数放在数组b,再对数组b排序。 

* 输入描述:无  

* 问题描述:

* 程序输出:输出数组b 

* 问题分析:略 

* 算法设计:略  

*/    

#include <iostream>    

using namespace std;    

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

 

 





/*  

* 文件名称:Ex4-2.cpp  

* 作    者:程家琦  

* 完成日期:2017 年 4 月 10 日  

* 版 本 号:v1.0  

* 对任务及求解方法的描述部分:定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数。 

* 输入描述:  

* 问题描述: 

* 程序输出:数组a中所有的奇数的阶乘和和偶数的阶乘和 

* 问题分析:略 

* 算法设计:略  

*/    

#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

 

 





/*  

* 文件名称:Ex4-4.cpp  

* 作    者:程家琦

* 完成日期:2017 年 4 月 10 日  

* 版 本 号:v1.0  

* 对任务及求解方法的描述部分:从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。其中求最大数、最小数和平均数用一个函数完成,统计大于平均数的个数用另一个函数完成。 

* 输入描述:一个10个数的数组  

* 问题描述:

* 程序输出:这10个数的最大数、最小数和平均数,大于平均数的个数。 

* 问题分析:略 

* 算法设计:略  

*/    

#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;  

}  

二、运行结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: