第四次作业
2017-04-12 23:33
281 查看
一、
运行结果
二、
运行结果
/**
项目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;
}
/* 项目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;
}