一、问题及代码
/*
*文件名:杨辉三角.cpp
*作者:吴涛涛
*完成日期:2017年4月10日
*版本号:2.0
*对任务及其完成方法的描述部分:
*输入描述:无
*问题描述:
编写函数,形成n阶杨辉三角形。在主函数中调用该函数,形成杨辉三角形,并输出结果。输入阶数n,输出处理后的结果。
*程序输出:
*问题分析:略
*算法设计:略
*/
#include<iostream>
using namespace std;
void yanghui(int x);
int main()
{
int x;
cout<<"请输入要形成的杨辉三角的层数:";
cin>>x;
yanghui(x);
return 0;
}
void yanghui(int x)
{
int a[x-1][x-1];
int i,j,k;
for(i=0;i<x;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<x;i++)
{
for(j=1;j<=i-1;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
cout<<"该杨辉三角为:"<<endl;
for(i=0;i<x;i++)
{
for(j=0;j<=i;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
}
二、运行结果
一、问题及代码
/*
*文件名:奇偶阶乘.cpp
*作者:吴涛涛
*完成日期:2017年4月10日
*版本号:1.0
*对任务及其完成方法的描述部分:
*输入描述:无
*问题描述:
定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数
*程序输出:
*问题分析:略
*算法设计:略
*/
#include<iostream>
using namespace std;
bool panduan(int x);
int fact(int );
int main()
{
int a[]={1,2,3,4,5,6,7,8,9,10};
int i,j,sum1=0,sum2=0;
for(i=0;i<10;i++)
{
cout<<a[i]<<" ";
j=panduan(a[i]);
if(j)
{
sum1+=fact(a[i]);
}
else
{
sum2+=fact(a[i]);
}
}
cout<<endl;
cout<<"数组中所有奇数的阶乘和:"<<sum2<<endl;
cout<<"数组中所有偶数的阶乘和:"<<sum1<<endl;
return 0;
}
bool panduan(int x)
{
if(x%2==0)
return 1;
else
return 0;
}
int fact(int n)
{
if(n==0)
return(1);
else
return(fact(n-1)*n);
}
二、运行结果
一、问题及代码
/*
*文件名:平均数个数.cpp
*作者:吴涛涛
*完成日期:2017年4月10日
*版本号:1.0
*对任务及其完成方法的描述部分:
*输入描述:无
*问题描述:
从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出
大于平均数的个数。其中求最大数、最小数和平均数用一个函数完成,统计大
于平均数的个数用另一个函数完成。
*程序输出:
*问题分析:略
*算法设计:略
*/
#include<iostream>
using namespace std;
double aver(int a[],int h,int &m,int &n);
int count(int a[],int h,double score);
int main()
{
int a[10];
cout<<"请输入一个十个数的数组中间用空格隔开:";
for(int x=0;x<10;x++)
{
cin>>a[x];
}
int max,min,i,h;
double averscore;
cout<<"数组x的元素:";
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
max=a[0];
min=a[0];
averscore=aver(a,10,max,min);
cout<<"最大数为:"<<max<<'\t'<<"最小数为:"<<min<<'\t'<<"平均数为:"<<averscore<<endl;
h=count(a,10,averscore);
cout<<"大于平均数有"<<h<<"个";
return 0;
}
double aver(int a[],int h,int &m,int &n)
{
int i,num=0;
for(i=0;i<h;i++)
{
num+=a[i];
if(a[i]>m)
m=a[i];
if(a[i]<n)
n=a[i];
}
return num/h;
}
int count(int a[],int h,double score)
{
int k=0;
for(int i=0;i<h;i++)
{
if(a[i]>score)
k++;
}
return k;
}
二、运行结果