函数(实验报告和作业报告)
来源:互联网 发布:双十一网络销售情况 编辑:程序博客网 时间:2024/06/04 19:25
/*
* 文件名称:Ex4-1.cpp
#include <iostream>
#include<cmath>
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]))//将a中的素数存入b数组
b[j++] = a[i];
}
print(b,8 ); //输出排序前的b数组
sort(b, 8); //对数组b排序
print(b,8); //输出排序后的b数组
return 0;
}
//下面定义自定义函数
void sort(int p[], int n)
{
int i, j,k=0;
for (i = 0; i < n - 1; i++)
for (j = 0; j < n - i - 1; j++)
{
if (p[j] > p[j + 1])
{
int t = p[j];
p[j] = p[j + 1];
p[j + 1] = t;
}
}
}
#include<cmath>
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]))//将a中的素数存入b数组
b[j++] = a[i];
}
print(b,8 ); //输出排序前的b数组
sort(b, 8); //对数组b排序
print(b,8); //输出排序后的b数组
return 0;
}
//下面定义自定义函数
void sort(int p[], int n)
{
int i, j,k=0;
for (i = 0; i < n - 1; i++)
for (j = 0; j < n - i - 1; j++)
{
if (p[j] > p[j + 1])
{
int t = p[j];
p[j] = p[j + 1];
p[j + 1] = t;
}
}
}
bool prime(int x)
{
int i,m;
{
int i,m;
m=floor(sqrt(x)+0.5);
for (i = 2; i <=m; i++)
{
if (x%i == 0)
return 0;
}
return 1;
}
void print(int p[], int n)
{
int k=0;
while(k<n)
cout<<p[k++]<<' ';
cout<<endl;
}
for (i = 2; i <=m; i++)
{
if (x%i == 0)
return 0;
}
return 1;
}
void print(int p[], int n)
{
int k=0;
while(k<n)
cout<<p[k++]<<' ';
cout<<endl;
}
心得体会:
写的时候一堆问题,数组访问总是越界,后来才看出来,这模板略坑。就是sort(b,n)这里,n是什么?显然从题目看的出来n是这个数组的元素个数,可这个n是怎么得到的?呵呵,想了我好久。这里题目给定了一个数组,显然n等于8,可是 如果不是这个数组呢,你还能让他等于8吗?那就要计算!怎么算?这个是int型的数组,就注定了不能用strlen来算,用‘/0’来判断显然也不合理(如果数组中有0这个元素呢?)。在网上看到很多人说用sizeof(buff)/sizeof(buff[0])来算,仔细想想还是不对,这里给定了10个单元的b数组,用这样的方法来算求的是10个元素,而实际上后面2个应该是为空的,也就是实际上只有8个元素。再想想即使是用快排也要知道元素个数啊,用迭代器遍历也必须知道元素个数或者它的begin和end吧。有一种方法是先将整形的数组转化为字符串,可这样做就有点太过了,而且还要改main()里面的东西。一时竟想不到合理的解决方法,只能把8写上去了。
知识点总结:
子函数编写。
以下为作业报告
/*
* 文件名称:Ex4-2.cpp
#include<iostream>
using namespace std;
int fac(int a)
{
int i,s=1;
for(int i=1;i<=a;i++)
s*=i;
return s;
}
int fun(int a[],int n)
{
int i,m=0,k=0;
for(i=0;i<n;i++)
{
if(a[i]%2==0)
m+=fac(a[i]);
else
k+=fac(a[i]);
}
cout<<m<<endl<<k;
}
int main()
{
int i=0;
int a[10];
cout<<"请输入10个整数:";
while(i<10)
cin>>a[i++];
fun( a,10);
}
using namespace std;
int fac(int a)
{
int i,s=1;
for(int i=1;i<=a;i++)
s*=i;
return s;
}
int fun(int a[],int n)
{
int i,m=0,k=0;
for(i=0;i<n;i++)
{
if(a[i]%2==0)
m+=fac(a[i]);
else
k+=fac(a[i]);
}
cout<<m<<endl<<k;
}
int main()
{
int i=0;
int a[10];
cout<<"请输入10个整数:";
while(i<10)
cin>>a[i++];
fun( a,10);
}
/*
* 文件名称:Ex4-3.cpp
#include<iostream>
#include<cstring>
#include<iomanip>
using namespace std;
void sanjiao()
{
int i,j,n=0,a[15][15];
memset(a,0,sizeof(a));
cout<<"请输入杨辉三角形的行数:";
cin>>n;
for(i=0;i<n;i++)
{
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++)
{
for(j=0;j<=i;j++)
cout<<setw(5)<<a[i][j];
cout<<'\n';
}
}
int main()
{
sanjiao();
}
#include<cstring>
#include<iomanip>
using namespace std;
void sanjiao()
{
int i,j,n=0,a[15][15];
memset(a,0,sizeof(a));
cout<<"请输入杨辉三角形的行数:";
cin>>n;
for(i=0;i<n;i++)
{
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++)
{
for(j=0;j<=i;j++)
cout<<setw(5)<<a[i][j];
cout<<'\n';
}
}
int main()
{
sanjiao();
}
/*
* 文件名称:Ex4-4.cpp
using namespace std;
double aver(int x[],int n,int &max1,int &min1,double &averscore)
{
int i;
double s=0;
max1=min1=x[0];
for(i=0;i<10;i++)
{
s+=x[i];
if(x[i]>max1)
max1=x[i];
else
min1=x[i];
}
averscore=s/n;
return 0;
}
int count1(int x[],double averscore)
{
int num=0;
for(int i=0;i<10;i++)
if(x[i]>averscore)
num++;
return num;
}
int main()
{
int x[10]={4,6,8,16,19,14,5,10,1,21},max1,min1,num;
double averscore=0;
aver(x,10,max1,min1,averscore);
num= count1(x,averscore);
cout<<"最大数为:"<<max1<<",最小数为:"<<min1<<",平均数为:"<<averscore<<",大于平均数的个数为:"<<num;
return 0;
}
0 0
- 函数(实验报告和作业报告)
- 电路实验报告(作业)
- c++实验项目(作业报告)
- C++第二次实验-作业报告(2)
- 操作系统作业调度实验报告
- C++第二次实验-作业报告
- C++第2次实验-作业报告(1)
- c++第二次作业报告(2个实验)
- c++第二次作业报告2.0(2个实验)
- C++第3次实验(基础班)作业报告
- C++第四次实验-作业报告(2,3,4)
- 软件工程(C编码实践篇) 第二次作业实验报告
- 软件工程(C编码实践篇) 第三次作业实验报告
- 《数据结构》实验三:栈和队列实验 (实验报告)
- c++ 第四次实验--作业报告
- C++第四次实验-作业报告
- C++第五次实验--作业报告
- C++第五次实验-作业报告
- (21):用函数对象表示策略
- servlet详解
- 1056. Mice and Rice (25)
- JSON解析类库之JSON-lib --- JSON-lib类库学习, 生成与解析json数据, json字符串与Java对象互转
- 七大排序
- 函数(实验报告和作业报告)
- 存一下大数加减法
- 5.5FHD MIPI 调试记录
- 最简实例说明wait、notify、notifyAll的使用方法
- 基于Android的TCP/IP调试助手Demo
- hive中查询星期几的方法
- windows程序基础-控件
- 深入浅出 妙用Javascript中apply、call、bind
- Oracle新建数据库 步骤