c++第四次实验-项目一

来源:互联网 发布:手机贵金属软件 编辑:程序博客网 时间:2024/05/17 22:52

项目1:数组素数排序

一、问题及代码

[cpp] view plain copy 
  
 在CODE上查看代码片派生到我的代码片
  1. /*  
  2. * 文件名称:Ex4-1.cpp  
  3. * 作    者:戴光彤 
  4. * 完成日期:2017 年 4月 10日  
  5. * 版 本 号:v1.0  
  6. * 对任务及求解方法的描述部分: 
  7. * 输入描述:无  
  8. * 问题描述:


    定义一个有10个的数组a,将数组a中的所有素数放在数组b,再对数组b排序

  9. [cpp] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. #include <iostream>  
    2. using namespace std;  
    3. void sort(int p[], int n);  //数组排序  
    4. bool prime(int x);   //素数判断  
    5. void print(int p[],int n);//输出数组  
    6. int main( )     
    7. {   int a[10]={2,13,5,47,19,53,27,23,28,11};  
    8.     int b[10],i,j=0;  
    9.     for(i=0;i<10;i++)  
    10.     {  
    11.         //将a中的素数存入b数组  
    12.     }  
    13.     print(b,?); //输出排序前的b数组    
    14.     sort(b,?);   //对数组b排序  
    15.     print(b,?);   //输出排序后的b数组  
    16.       
    17.     return 0;  
    18. }  
    19. //下面定义自定义函数  

  10. * 程序输出:
  11. * 问题分析:略 
  12. * 算法设计:
    1. #include <iostream>    
    2. using namespace std;    
    3. void sort(int p[], int n);  //数组排序    
    4. bool prime(int x);   //素数判断    
    5. void print(int p[],int n);//输出数组    
    6. int main( )       
    7. {   int a[10]={2,13,5,47,19,53,27,23,28,11};    
    8.     int b[10],i,j=0;    
    9.     for(i=0;i<10;i++)    
    10.     {    
    11.         if(prime(a[i]))  
    12.         {  
    13.             b[j]=a[i],j++;  
    14.         }//将a中的素数存入b数组    
    15.     }    
    16.     print(b,j); //输出排序前的b数组      
    17.     sort(b,j);   //对数组b排序    
    18.     print(b,j);   //输出排序后的b数组    
    19.         
    20.     return 0;    
    21. }  
    22. void sort(int p[], int n)     
    23. {    
    24.     int i,j=1,k;    
    25.     for(i=0;i<n;i++)    
    26.     {    
    27.         for(j=0;j<n-i-1;j++)    
    28.         {    
    29.             if(p[j]>p[j+1]) k=p[j],p[j]=p[j+1],p[j+1]=k;    
    30.         }    
    31.     }    
    32. }    
    33.       
    34. bool prime(int x)    
    35. {    
    36.     int i;    
    37.     for(i=2;i<x;i++)    
    38.     {    
    39.         if(x%i==0) return false;    
    40.     }    
    41.     return true;    
    42. }    
    43.       
    44. void print(int p[],int n)      
    45. {    
    46.     for(int i=0;i<n;i++)    
    47.     {    
    48.         cout<<p[i]<<" ";    
    49.     }    
    50.     cout<<endl;    
    51. }    

二、运行结果:


三、心得体会:

     本实验过程相对复杂,首先是要掌握多种类型结构,比如布尔型。还要会对素数判断,当然还要会输入输出数组。

        函数数组的知识点较多,包括增删改查等内容,而本实验要求会对数组进行排序。

        编写一个过程相对复杂的程序需要我们付出更多的耐心去一遍遍修改错误。

    

四、知识点总结:

        函数的定义及引用。数组的输入输出及排序,素数的判断。

  

    


0 0