C++第四次实验-实验报告(1)
来源:互联网 发布:win7 64位优化版gho 编辑:程序博客网 时间:2024/05/04 03:01
一、问题及代码
/* *文件名:0.cpp *作者:张前咨 *完成日期:2017年4月10日 *版本号:5.11 *对任务及其完成方法的描述部分: *输入描述:无 *问题描述: 【项目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]={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];//将a中的素数存入b数组 } print(b,j); //输出排序前的b数组 sort(b,j); //对数组b排序 print(b,j); //输出排序后的b数组 return 0; } bool prime(int x){if(x%2)//判断是否为奇数 {for(int i=3;i*i<=x;i+=2){if(!(x%i)){return false;}}return true;}elsereturn false; } void sort(int p[],int n)//地精排序 { int i=0; int temp; while(i<n) { if(i==0||p[i-1]<=p[i]) i++; else{temp=p[i-1];p[i-1]=p[i];p[i]=temp;i--;} } } void print(int p[],int n) { for(int i=0;i<n;i++) { cout<<p[i]<<" "; }cout<<endl; }
二、运行结果
三、心得体会
1、判断素数与排序已经是写过很多遍的问题了,但是想不加思考的直接敲出来,还是有一点难度,还需继续练习。
2、在判断素数时使用了 x%2 的技巧,可以精简代码,但是可读性会比较低。
3、在排序时选用了地精排序,而没有选用更加快速的排序方法,因为这个问题不需要太高的时间复杂度,所以选择地精排序,精剪代码长度。
四、知识点总结
1、判断一个数是否为素数,只需要判定是否能被2整除,及x%2即可,x%2!=0 即为奇数,否则则为偶数。缩写即为x%2。
2、地精排序是冒泡排序的加强版,遇到比前面大的数字则交换位置,回退一步,重新判断,不断重复这个操作,直到排序完毕。
0 0
- c++第四次实验(实验报告)
- C++第四次实验-实验报告(1)
- 第四次实验报告
- 第四次实验报告
- 第四次C程序设计实验报告
- 第四次c语言上机实验报告
- 第四次C语言上机实验报告
- 第四次上机实验报告
- 第四次上机实验报告
- C++第四次实验报告
- C++第四次实验报告
- C++第四次实验-实验报告
- c++第四次实验实验报告
- c程序语言设计第四次上机实验报告
- 第四次上机实验报告:C语言调试方法
- [c++实验报告]第四次实验报告:循环结构设计
- 软件工程(C编码实践篇) 第四次作业实验报告
- C++第四次实验-作业报告(2,3,4)
- windows上的navicat连接虚拟机上的mysql
- LeetCode 225. Implement Stack using Queues
- Java 设计模式 原型模式详解
- 通过vue-cli创建一个项目
- 关于Dubbo源码的研究(一:负载均衡)
- C++第四次实验-实验报告(1)
- Storm的有环Topology
- LeetCode 485. Max Consecutive Ones
- 打开新窗口以post方式提交
- 队列Queue、双端队列Deque
- spring+Mybatis(测试)
- iOS-个人开发者账号转公司开发者账号(邓白氏码申请教程)
- junit常用注解详细说明
- 这五本经典的九分书籍,一千个人里只有一个人读过