毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

C++用函数判断降序排序问题

更新时间:2011-5-11:  来源:毕业论文

C++用函数判断降序排序问题
编写具有如下函数原型的递归与非递归两种函数f,负责判断数组a的前n个元素是否从大到小完全有序了,是则返回true,否则返回false。并编制主函数对它们进行调用,以验证其正确性。bool f(int a[], int n);
(一) 需求分析:
   本程序主要解决的是: 编写具有如下函数原型的递归与非递归两种函数f,负责判断数组a的前n个元素是否从大到小完全有序了,是则返回true,否则返回false。并编制主函数对它们进行调用,以验证其正确性。
bool f(int a[], int n);
(二) 概要分析:
从题目的要求上看,编制一个函数bool f(int a[], int n) 就可以来判断数组是否排列顺序,首先定义一个数组,赋值,然后通过调用bool f(int a[], int n) 函数来进行验证是否顺序排列。程序的流程图如下:
(三) 详细设计:
首先定义数组并赋值,其方法上边的题目中多次给出,在这里不进行详细的描述,
再者,编制bool f(int a[], int n) 函数,它有两个方法:
1. 可以用非递归的方法,它可以用for 循环来判断数组元素的前后的大小是否按顺序排列
 
2. 用递归的方法,中间的循环地调用它自身的函数,可以用if—else—来结合使用
程序的主要的关键点都已经列出,因此很容易的就能做出这道题。
(四) 调试分析:
由于在非递归的算法中进行调用时,数据越界出现问题,最后改正后就没什么问题了。 
(五) 用户使用说明: 
用户的使用目的就是检验一个数组是否按从大到小的顺序排列,运行程序的输入只要根据提示就能很容易的作到。如果想改成从小到大的顺序也是可以的,还有数组的长度没有什么固定的限制,可以在main 函数里修改数组的长度。
(六) 测试结果:
当a[5]={45,8,6,87,9 }时:
 当a[5]={ 5 ,4,3,2,1}时: 
(七) 源程序:(见上传代码)
(八) 编程体会:
这一道编程题目主要还是编制一个bool 型的函数,它的返回值为true or false ,程序的难点在于使用if—else—语句时判断什么时候return true,什么时候return false认识到算法对编程的影响。在非递归过程就遇到了点小问题。•

/*************************************************

  Copyright (C), 2008

  File name: 软件设计普通题 14(14.cpp)

  Author:  计06-1  高战         

  Description: 

  Others:       ....

  Function List:  // 主要函数列表,每条记录应包括函数名及功能简要说明
   1.main()            完成各种提示与主操作输入输出
   2.for               循环
                        3.f(int a[],int n) 递归函数
                        4 f1()              非递归函数 

  History:       

   <author>  <time>   <version >   <desc>

*****************************************************/
#include<iostream>
using namespace std;
int main()
{
 bool f(int a[],int n);                /*声明两种函数*/
 bool f1(int a[],int n);
 int a[5],m,b=1;                  
 while(b){                            /*各种操作的提示和运行*/
 cout<<"$$$$$$$$$$$$$$$$$$$$"<<endl;
 cout<<"输入5个整数"<<endl;
 cout<<"$$$$$$$$$$$$$$$$$$$$"<<endl;
 for(int i=0;i<5;i++)
  cin>>a[i];
     cout<<"$$$$$$$$$$$$$$$$$$$$"<<endl;
 cout<<"选用递归算法按1 非递归算法按2"<<endl;
     cout<<"$$$$$$$$$$$$$$$$$$$$"<<endl;
 cin>>m;
 if(m==1) {  if(f(a,5))                          /*调用递归函数*/
            cout<<"是从大到小有序的排列"<<endl;
             else cout<<"不是从大到小的排列"<<endl;}
    else if(m==2) {if(f1(a,5))                              /*调用非递归函数*/
                  cout<<"是从大到小有序的排列"<<endl;
              else cout<<"不是从大到小的排列"<<endl;}
原文请找腾讯752018766六,维-论'文.网http://www.lwfree.cn/  return 0;
 
}
bool f(int a[],int n)                               /*递归函数的定义*/
{
 if(n==1)
  return true;
  if(a[n-1]<a[n-2])
  f(a,n-1);
   else return false;
};
bool f1(int a[],int n)                            /*非递归函数的定义*/
{ for(int i=0;i<5;i++)
     if(a[i]<a[i+1]) continue;
   else return false;};1826

C++用函数判断降序排序问题下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.cn 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。