项目2:奇偶阶乘
一、问题及代码
- /*
- * 文件名称:zuoye4-2.cpp
- * 作 者:戴光彤
- * 完成日期:2017 年 4月 10日
- * 版 本 号:v1.0
- * 对任务及求解方法的描述部分:
- * 输入描述:无
- * 问题描述
定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数。
- * 程序输出:
- * 问题分析:略
- * 算法设计:略
- #include <iostream>
using namespace std;
bool jishu(int x);
int he(int p[],int m);
int main( )
{
int a[10]={1,2,1,4,1,6,1,8,1,10};
int b[10],c[10],sum1,sum2,i,j=0,k=0;
for(i=0;i<10;i++)
{
if(jishu(a[i]))
b[j]=a[i],j++;
else
c[k]=a[i],k++;
}
sum1=he(b,j);
sum2=he(c,k);
cout<<"奇数阶乘和为:"<<sum1<<endl<<"偶数阶乘和为:"<<sum2<<endl;
}
bool jishu(int x)
{
for(int i=0;i<10;i++)
{
if(x%2==0) return false;
}
return true;
}
int he(int p[],int m)
{
int i,j,sum=0;
for(i=0;i<m;i++)
{
int n=1;
for(j=1;j<=p[i];j++)
{
n=n*j;
}
sum=sum+n;
}
return sum;
}
二、运行结果:
项目3:杨辉三角
一、问题及代码
- /*
- * 文件名称:zuoye4-3.cpp
- * 作 者:戴光彤
- * 完成日期:2017 年 4月 10日
- * 版 本 号:v1.0
- * 对任务及求解方法的描述部分:
- * 输入描述:无
- * 问题描述:
编写函数,形成n阶杨辉三角形。在主函数中调用该函数,形成杨辉三角形,并输出结果。输入阶数n,输出处理后的结果。
- * 问题分析:略
- * 算法设计:略
- */
- #include<iostream.h>
void f(int n)
{
int a[50][50];
int i,j;
for(i=0;i<n;i++)
{a[i][0]=1;a[i][i]=1;}
for (i=2;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(j=0;j<=i;j++)
{cout<<a[i][j]<<" ";}
cout<<"\n";
-
}
}
int main()
{
int a[50][50];
int n;
cin>>n;
f(n);
return 0;
}
二、运行结果:
项目4:
一、问题及代码
- /*
- * 文件名称:zuoye4-2.cpp
- * 作 者:戴光彤
- * 完成日期:2017 年 4月 10日
- * 版 本 号:v1.0
- * 对任务及求解方法的描述部分:
- * 输入描述:无
- * 问题描述
从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。其中求最大数、最小数和平均数用一个函数完成,统计大于平均数的个数用另一个函数完成。
参考格式:
- #include<iostream>
- using namespace std;
- //自定义函数的原型(即函数声明)
- //由于一个函数只能返回一个值,如何要一个函数返回多个值用可用引用传递返回
- double aver(int x[],int n,double &m,double &n);
- //统计平均数的个数
- int count(int x[],int n,double score);
- int main()
- {
- int x[10]={4,6,8,16,19,14,5,10,1,21},max,min,i,num;
- double averscore;
- aversocre=aver(x,10,max,min);
- cout<<"最大数为:"<<max<<",最小数为:"<<min<<",平均数为:"<<averscore;
- ....//自己编写
- return 0;
- }
- //下面定义自定义函数
- * 程序输出:
- * 问题分析:略
- * 算法设计:略
-
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.0;
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;
}
二、运行结果: