一问题及代码
项目2:奇偶阶乘,定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数。
#include<iostream>
using namespace std;
int c(int x,int y)
{
int z;
if(y==1||y==x)
return 1;
z=c(x-1,y-1)+c(x-1,y);
return z;
}
int main(int argc,const char*argv[])
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<2*n-2*i+1;j++)
cout<<" ";
for(int j=1;j<=i;j++)
cout<<c[i,j]<<" ";
cout<<endl;
}
return 0;
}
int c(int x,int y)
{
int z;
if(y==1||y==x)
return 1;
z=c(x-1,y-1)+c(x-1,y);
return z;
}
int main(int argc,const char*argv[])
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<2*n-2*i+1;j++)
cout<<" ";
for(int j=1;j<=i;j++)
cout<<c[i,j]<<" ";
cout<<endl;
}
return 0;
}
二运行结果
三项目3:杨辉三解
编写函数,形成n阶杨辉三角形。在主函数中调用该函数,形成杨辉三角形,并输出结果。输入阶数n,输出处理后的结果
#include<iostream>
using namespace std;
void yanghui(int a[][10]);
int main()
{
int a[6][10];
yanghui(a);
return 0;
}
void yanghui(int a[][10])
{
int i,j;
for(i=0;i<10;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<10;++i)
for(j=1;j!=i;++j)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;++i)
{
for(j=0;j<=i;++j)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
四运行结果
using namespace std;
void yanghui(int a[][10]);
int main()
{
int a[6][10];
yanghui(a);
return 0;
}
void yanghui(int a[][10])
{
int i,j;
for(i=0;i<10;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<10;++i)
for(j=1;j!=i;++j)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;++i)
{
for(j=0;j<=i;++j)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
五项目四从有一个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<<",平均数为:"<<averscore<<endl;
cout<<"大于平均数的数的个数为:"<<count(x,10,averscore)<<endl;
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.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<<",平均数为:"<<averscore<<endl;
cout<<"大于平均数的数的个数为:"<<count(x,10,averscore)<<endl;
return 0;
}