C++第三次实验项目1、2、4
来源:互联网 发布:android 在线源码 编辑:程序博客网 时间:2024/05/21 17:41
项目1
一、问题及代码
#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]={1,2,3,4,5,6,7,8,9,10}; int b[10]; int i=0; int j=0; for(i=0;i<10;i++) { if(prime(a[i]))//将a中的素数存入b数组 b[j++]=a[i]; } print(b,10);//输出排序前的b数组 sort(b,10);//对数组b排序 print(b,10);//输出排序后的b数组 return 0;}void sort(int p[],int n){ int i,j,t; int k=0; for(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { if(p[j]<p[j+1]) { t=p[j]; p[j]=p[j+1]; p[j+1]=t; } } }}bool prime(int x){ int i,j; j=x; for(i=2;i<j;i++) { if(x%i==0) return 0; } else return 1;}void print(int p[],int n){ int j=0; for(j=0;j<n;j++) cout<<p[j]<<" ";}
运行结果
心得体会
我真的不知道这哪里错了啊
知识点总结
bool 函数的用法 函数调用 数组的结合
项目2
一、问题及代码
/* * 文件名称:Ex4-2.cpp * 作 者:周世豪* 完成日期:2017 年 4月 10 日 * 版 本 号:cb v1.25.0* 对任务及求解方法的描述部分: * 输入描述:无 * 问题描述: 定义一个有10个的数组a,输出数组a中所有的奇数的阶乘和和偶数的阶乘和。其中将奇偶数的判断和阶段的计算定义为函数。* 程序输出:略* 问题分析:略 * 算法设计:略 */ #include<iostream>using namespace std;int fac(int n){ int i,f=1; for(i=1;i<n;i++) f*=i; return f;}int fun(int a[],int n){ int p=0; int q=0; for(int i=0;i<n;i++) { if(a[i]%2==0) p+=fac(a[i]); else q+=fac(a[i]); } cout<<"偶数阶乘之和"<<p<<endl; cout<<"奇数阶乘之和"<<q<<endl;}int main(){ int a[10]; int i; for(i=0;i<10;i++) cin>>a[i]; fun(a,10);}
运行结果
心得体会
我本以为要写两个fac函数,后来和同学交流,发现一个就行。后来还发现fac函数要比之前写的要简单点,因为有限定条件,比较好写。
知识点总结
求阶乘 函数调用
项目4
一、问题及代码
/* * 文件名称:Ex4-2.cpp * 作 者:周世豪* 完成日期:2017 年 4月 10 日 * 版 本 号:cb v1.25.0* 对任务及求解方法的描述部分: * 输入描述:无 * 问题描述: 定义一个有10个的数组x,求出数组中的MAX,MIN,比MAX大的数有几个* 程序输出:略* 问题分析:略 * 算法设计:略 */ #include<iostream>using namespace std;//用引用传递返回多个函数的值int aver(int x[],int *,int *);//用指针传值int count(int x[],int n,double ave);int main(){ int x[10]={4,6,8,16,19,14,5,10,1,21}; int n; int min; int max; min=x[0]; max=x[0]; double ave=aver(x,&max,&min); n=count(x,10,ave); cout<<"MAX="<<max<<" "<<",MIN="<<min; return 0;}int aver(int x[],int *a,int *b)//指针a,b分别传递max,min的值{ int i=0; int sum=0; double ave; for(i=0;i<10;i++) { sum+=x[i]; if(x[i]>*a) *a=x[i]; if(x[i]<*b) *b=x[i]; } ave=sum/10.0; cout<<"平均值"<<ave<<endl; return ave;}int count(int x[],int n,double ave){ int i=0; int num=0; for(i=0;i<10;i++) { if(x[i]>ave) num++; } cout<<"比平均值大的数有"<<num<<"个。"<<endl; return num;}
二、运行结果
三、心得体会
这题就比较难,想了很久,才想出来了用指针传递数值(数值不会改变)、利用指针来比较和x其实是x[i]的第一个元素的地址。还有就是不要只在主函数里输出值,那样会给自己带来麻烦。还有就是函数的声明与调用要清晰,不要使自己看不清。
四、知识点总结
函数调用(主函数与副函数,副函数与副函数) 指针传值,比较值
0 0
- C++第三次实验项目1、2、4
- C++第三次实验项目4
- C++第三次实验-项目2
- C++第三次实验项目2
- 第三次实验:项目二
- C语言第三次上机实验
- 第三次C程序设计实验报告
- 第三次C语言上机实验
- C++第三次实验.2
- 第三次上机实验2
- c++第三次实验-2
- C++第三次实验.1
- c++第三次实验-1
- c++第三次实验-1
- c++第三次实验-1
- C++第三次实验-项目4:多段函数求值
- 我的第三次上机实验3-1第一个项目
- C++第三次实验——项目1-静态成员应用
- 334. Increasing Triplet Subsequence 题解
- Java.SE01.多线程_案例03
- [编程题] 字符串编码
- Linux进程IPC浅析[进程间通信SystemV共享内存]
- python基础-encode与decode,中文乱码
- C++第三次实验项目1、2、4
- Java多线程探究-创建多线程
- 判断两条线段是否相交
- Spark RDD API详解(一) Map和Reduce
- 递归递推 I
- swift搜索条
- Android中第三方SDK集成之腾讯Bugly热更新集成指南
- 作业项目二项目三项目四
- a:link,a:visited,a:hover,a:active的使用