您的位置:首页 > 其它

第四次作业

2017-04-12 23:33 281 查看
一、

/*
项目3:杨辉三解
编写函数,形成n阶杨辉三角形。在主函数中调用该函数,形成杨辉三角形,并输出结果。输入阶数n,输出处理后的结果。
*/
/*
*文件名称:杨辉三解.cpp
*作    者:贾金铎
*完成日期:2017年4月10日
*对问题及求解方法的描述部分:
*输入描述:n
*问题描述:
*程序输出:杨辉三角
*问题分析:略
*算法设计:略
*/
#include <iostream>

using namespace std;
void fun(int x);

int main()
{
int n;
cout<<"请输入杨辉三角的行数n: ";
cin>>n;
cout<<endl;
fun(n);
return 0;
}
void  fun(int n)
{
int i,j,a[20][20] = {0},m;
for (i = 0;i < n;i++)   /**将每行第一个数字设定为 1 */
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++)  /**输出杨辉三角**/
{
m=n;
for (m=n-i;m>1;m--)
cout<<" ";
for (j = 0;j <= i;j++)
cout<<a[i][j]<<" ";
cout<<"\n";

}
cout<<"\n";

}


运行结果



二、

/*
*文件名称:奇偶阶乘.cpp
*作    者:贾金铎
*完成日期:2017年4月10日
*对问题及求解方法的描述部分:
*输入描述:数组a[]
*问题描述:
*程序输出:奇偶阶乘和
*问题分析:略
*算法设计:略
*/
#include <iostream>
using namespace std;
int fun(int x);
int main()
{
int a[10],i;
int sum1=0,sum2=0;
cout<<"请输入数组a[]的十个数: ";
for(i=0;i<10;i++)
{
cin>>a[i];
}
cout<<endl;
for(i=0;i<10;i++)
{
if(a[i]%2==0)
{
sum1+=fun(a[i]);            ///
}
else
{
sum2+=fun(a[i]);            ///
}
}
cout<<"奇数的阶乘和为 "<<sum1<<endl;
cout<<"偶数的阶乘和为 "<<sum2<<endl;
}
int fun(int x)
{
int i,j=1;
for(i=1;i<=x;i++)
{
j*=i;
}
return j;
}


运行结果



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

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

参考格式:
**/
#include <iostream>

using namespace std; /**自定义函数的类型**/

double aver(double x[],int k,double *m,double *n,double averscore); /**由于一个函数只能返回一个值,如何要一个函数返回多个值可用引用传递返回**/

int count(double x[],int n,double score); /**统计大于平均数的个数**/

int main()
{
double x[10]={4,6,8,16,19,14,5,10,1,21},max,min,i,num;
double averscore=0;
averscore=aver(x,10,&max,&min,averscore); /** 用指针传递数值**/
num=count(x,10,averscore);
cout << "最大数为:" <<max<<"\t最小数为:"<<min<<"\t平均数为"<<averscore<<endl;
cout<<"比平均数大的个数为:"<<num<<endl;
return 0;
}

double aver(double x[],int k,double *m,double *n,double averscore=0)
{
*m=x[0];
*n=x[0];

for(int i=0;i<k;i++)
{
averscore+=x[i];
if(x[i+1]>x[i])
{
*m = x[i+1];
}
else
{
*n = x[i+1];
}
}
averscore=averscore/10.0;
return averscore;
}

int count(double x[],int n,double score)
{
int num,i;
num=0;
for(i=0;i<n;i++)
{
if(x[i]>score)
num++;
}
return num;
}


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