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

C++第三次作业

2017-04-10 18:41 190 查看
/* 
* 文件名称: C++第三次上机作业
* 作    者:  汪荣建
* 完成日期:     2017 年    4 月    10日 
* 版 本 号:v1.0 
* 对任务及求解方法的描述部分:
* 输入描述:  略
* 问题描述: 略
* 程序输出:  见图
* 问题分析: 
算法设计:
 

*/  

第一题代码:

/*项目2:奇偶阶乘

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

#include<iostream>

using namespace std;

int panduan(int x);//判断奇偶数

int jisuan(int y);//计算

int main()

{
int i,j=0,k=0,a[10],b[10],c[10],sum1,sum2=0,sum3,sum4=0;
for(i=0;i<10;i++)
{
cin>>a[i];
}
for(i=0;i<10;i++)
{
       int m;
m=panduan(a[i]);
if(m==1)
{

                        b[j]=a[i];

                        j++;
}
if(m==0)
{

                        c[k]=a[i];

                        k++;
}

}
for(i=0;i<10;i++)
{
sum1=jisuan(b[i]);
sum2+=sum1;
sum1=0;
}
for(i=0;i<10;i++)
{
sum3=jisuan(c[i]);
sum4+=sum3;
sum3=0;
}
cout<<"奇数的阶乘和"<<sum4<<endl;
cout<<"偶数的阶乘和"<<sum2<<endl;

}

int panduan(int x)

{

        if(x%2==0)

        return 1;

        else

        return 0;

}

int jisuan(int y)

{
int i,j,a=1;
for(i=1;i<=y;i++)
{
a*=i;
}
return a;

}

第一题运行结果



第二题代码:

#include<iostream>

using namespace std;

int yanghui(int n);

int main()

{
int n;
cout<<"输入杨辉三角的阶数";
cin>>n;
yanghui(n);
return 0;

}

int yanghui(int n)

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

for(i=0;i<n;i++)
{
for(k=0;k<n-i;k++)
printf(" ");
for(j=0;j<=i;j++)
printf("%2d",a[i][j]);
printf("\n");
}
return 0;

}

第二题运行结果:



第三题代码:

/*项目4:从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。

其中求最大数、最小数和平均数用一个函数完成,统计大于平均数的个数用另一个函数完成。*/

#include<iostream>

using namespace std;

void aver(double arr[],int x);

void tongji(double arr[],int x);

int main()

{

        double a[10];

        int i,j;

        cout<<"请输入10个数:";

        for(i=0;i<10;i++)

        {

                cin>>a[i];

        }

        aver(a,10);

        tongji(a,10);

}

void aver(double arr[],int x)

{

    double max,min,sum=0;

    max=min=arr[0];

    for(int i=1;i<10;i++)

        {

             if(arr[i]>max)

             max=arr[i];

            if(arr[i]<min)

             min=arr[i];

             sum+=arr[i];

        }

    int aver=sum/x;

    cout<<"max="<<max<<"\n"<<"min="<<min<<"\n"<<"aver="<<aver<<endl;

}

void tongji(double arr[], int x)

{

       double sum=0,y=0;

     for(int i=0;i<10;i++)

        sum+=arr[i];

     double num=sum/x;

     for(int i;i<10;i++){

        if(arr[i]>num)

                y++;

}

     cout<<"大于平均数的个数:"<<y<<endl;

}

第三题运行结果:



三:心得体会

难度大了好多,有许多不懂的地方。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: