c++第四次实验-数组素数排序

来源:互联网 发布:医疗卫生软件 编辑:程序博客网 时间:2024/05/16 19:20
一、问题及代码/*  * 文件名称:数组素数排序.cpp  * 作    者:潘维涵 * 完成日期:2017 年 4 月 10 日  * 版 本 号:v1.0  * 对任务及求解方法的描述部分: * 输入描述:无  * 问题描述:将一个数组之中的素数存入另一个数组之中并使其排列* 程序输出:另一个数组排序前和排序后的样子 * 问题分析:使用函数来分工* 算法设计:无*/    #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;int n = 0;for (i = 0; i<10; i++){j = prime(a[i]);//将a中的素数存入b数组  if (j == 1){b[n++] = a[i];}}print(b, n ); //输出排序前的b数组   sort(b, n );   //对数组b排序  cout << endl;print(b, n );   //输出排序后的b数组  return 0;}//下面定义自定义函数  bool prime(int x){int sum = 0;for (int i = 2; i < x; i++){if (x%i == 0){return 0;}else{sum++;}}if (sum == x - 2){return 1;}}void print ( int a[], int n){for (int i = 0; i < n; i++){cout << a[i] << " ";}}void sort(int a[], int n){int i, j, k, t;for (i = 0; i < n; i++){k = i;for (j = i + 1; j < n; j++){if (a[k] > a[j]){k = j;}}if (k != i){t = a[i];a[i] = a[k];a[k] = t;}}}
二、运行结果:
三、心得体会:
使用函数来分工合作,使得处理问题更加简明
四、知识点总结:
void函数没有返回值,bool函数用于判断正误。

0 0
原创粉丝点击