C++第四次实验-作业报告
2017-04-10 15:05
337 查看
项目1:数组素数排序
一、问题及代码
定义一个有10个的数组a,将数组a中的所有素数放在数组b,再对数组b排序。
[cpp] view
plain copy
/*
* 文件名称:Ex4-1.cpp
* 作 者:程家琦
* 完成日期:2017 年 4 月 10 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:定义一个有10个的数组a,将数组a中的所有素数放在数组b,再对数组b排序。
* 输入描述:无
* 问题描述:
* 程序输出:输出数组b
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
using namespace std;
void sort(int p[], int n);
bool prime(int x);
void print(int p[],int n);//
int main( )
{ int a[10]={2,13,5,47,19,53,27,23,28,11};
int b[10],i,j=0;
for(i=0;i<10;i++)
{
if(prime(a[i]))
{
b[j]=a[i],j++;
}
}
print(b,j);
sort(b,j);
print(b,j);
return 0;
}
void sort(int p[], int n)
{
int i,j=1,k;
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(p[j]>p[j+1]) k=p[j],p[j]=p[j+1],p[j+1]=k;
}
}
}
bool prime(int x)
{
int i;
for(i=2;i<x;i++)
{
if(x%i==0) return false;
}
return true;
}
void print(int p[],int n)
{
for(int i=0;i<n;i++)
{
cout<<p[i]<<" ";
}
cout<<endl;
}
二、运行结果
项目2:奇偶阶乘
一、问题及代码
定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数。
[cpp] view
plain copy
/*
* 文件名称:Ex4-2.cpp
* 作 者:程家琦
* 完成日期:2017 年 4 月 10 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数。
* 输入描述:
* 问题描述:
* 程序输出:数组a中所有的奇数的阶乘和和偶数的阶乘和
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
using namespace std;
int ji(int x)
{
if(x==1) return 1;
return x*ji(x-1);
}
bool jis(int x)
{
if(x%2) return 1;
return 0;
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int jsjch=0,osjch=0;
for(int i=0;i<10;i++)
{
if(jis(a[i])) jsjch+=ji(a[i]);
else osjch+=ji (a[i]);
}
cout<<"奇数阶乘和:"<<jsjch<<endl;
cout<<"偶数阶乘和:"<<osjch<<endl;
return 0;
}
二、运行结果
项目4
一、问题及代码
从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。其中求最大数、最小数和平均数用一个函数完成,统计大于平均数的个数用另一个函数完成。
[cpp] view
plain copy
/*
* 文件名称:Ex4-4.cpp
* 作 者:程家琦
* 完成日期:2017 年 4 月 10 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。其中求最大数、最小数和平均数用一个函数完成,统计大于平均数的个数用另一个函数完成。
* 输入描述:一个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<<",平均数为:"<<aver(x,10,max,min)<<endl;
cout<<"大于平均数的数的个数为:"<<count(x,10,averscore)<<endl;
return 0;
}
二、运行结果
一、问题及代码
定义一个有10个的数组a,将数组a中的所有素数放在数组b,再对数组b排序。
[cpp] view
plain copy
/*
* 文件名称:Ex4-1.cpp
* 作 者:程家琦
* 完成日期:2017 年 4 月 10 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:定义一个有10个的数组a,将数组a中的所有素数放在数组b,再对数组b排序。
* 输入描述:无
* 问题描述:
* 程序输出:输出数组b
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
using namespace std;
void sort(int p[], int n);
bool prime(int x);
void print(int p[],int n);//
int main( )
{ int a[10]={2,13,5,47,19,53,27,23,28,11};
int b[10],i,j=0;
for(i=0;i<10;i++)
{
if(prime(a[i]))
{
b[j]=a[i],j++;
}
}
print(b,j);
sort(b,j);
print(b,j);
return 0;
}
void sort(int p[], int n)
{
int i,j=1,k;
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(p[j]>p[j+1]) k=p[j],p[j]=p[j+1],p[j+1]=k;
}
}
}
bool prime(int x)
{
int i;
for(i=2;i<x;i++)
{
if(x%i==0) return false;
}
return true;
}
void print(int p[],int n)
{
for(int i=0;i<n;i++)
{
cout<<p[i]<<" ";
}
cout<<endl;
}
二、运行结果
项目2:奇偶阶乘
一、问题及代码
定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数。
[cpp] view
plain copy
/*
* 文件名称:Ex4-2.cpp
* 作 者:程家琦
* 完成日期:2017 年 4 月 10 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数。
* 输入描述:
* 问题描述:
* 程序输出:数组a中所有的奇数的阶乘和和偶数的阶乘和
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
using namespace std;
int ji(int x)
{
if(x==1) return 1;
return x*ji(x-1);
}
bool jis(int x)
{
if(x%2) return 1;
return 0;
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int jsjch=0,osjch=0;
for(int i=0;i<10;i++)
{
if(jis(a[i])) jsjch+=ji(a[i]);
else osjch+=ji (a[i]);
}
cout<<"奇数阶乘和:"<<jsjch<<endl;
cout<<"偶数阶乘和:"<<osjch<<endl;
return 0;
}
二、运行结果
项目4
一、问题及代码
从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。其中求最大数、最小数和平均数用一个函数完成,统计大于平均数的个数用另一个函数完成。
[cpp] view
plain copy
/*
* 文件名称:Ex4-4.cpp
* 作 者:程家琦
* 完成日期:2017 年 4 月 10 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。其中求最大数、最小数和平均数用一个函数完成,统计大于平均数的个数用另一个函数完成。
* 输入描述:一个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<<",平均数为:"<<aver(x,10,max,min)<<endl;
cout<<"大于平均数的数的个数为:"<<count(x,10,averscore)<<endl;
return 0;
}
二、运行结果