实验四:数组排列

来源:互联网 发布:万网域名信息查询 编辑:程序博客网 时间:2024/04/29 05:52

一、问题及代码

/* 文件名称:数组排序.cpp * 作    者:吴涛涛 * 完成日期:2017 年 4 月 10 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分: * 输入描述:无 * 问题描述:   项目1:数组素数排序定义一个有10个的数组a,将数组a中的所有素数放在数组b,再对数组b排序。 * 程序输出: * 问题分析:略 * 算法设计:略 */  #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];j++;}}      cout<<"排序前数组:";print(b,j);  //输出排序前的b数组    cout<<endl;    sort(b,j);   //对数组b排序cout<<endl;    cout<<"排序后数组:";print(b,j);cout<<endl;  //输出排序后的b数组            return 0;  }  //下面定义自定义函数 void sort(int p[],int n){     int i,j,t; for(i=1;i<n;i++) {     for(j=i-1;j>=0;j--) {     if(p[j]>p[j+1]) {        t=p[j];p[j]=p[j+1];p[j+1]=t; } } }}bool prime(int x){ for(int i=2;i<=sqrt(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]<<"  ";}



二、运行结果


三、心得体会

在代码编辑中,遇到了些许问题,自定义排序函数一开始排的顺序总是不能完全排好

会漏了几个,经过仔细的排查发现原来是在排序时用错了下标

在学会用函数后主函数非常简洁明了,一目了然,没有自定义函数前,主函数程序代码

多而繁杂

四、知识点总结

在使用自定义函数前必须声明,如果函数定义放在main函数之后

函数声明时必须声明返回值类型,括号中也必须声明变量类型

1 0