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;
}
二、运行结果: