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

VC++数组问题递归与非递归源码+流程图

更新时间:2011-4-29:  来源:毕业论文

VC++数组问题递归与非递归源码+流程图
需求分析
编写具有如下函数原型的递归与非递归两种函数f,负责判断数组a的前n个元素是否从大到小完全有序了,是则返回true,否则返回false。并编制主函数对它们进行调用,以验证其正确性。
bool f(int a[], int n);
2. 概要设计
(1)非递归函数中只需逐对地判断各a[i]与a[i+1]是否都已从大到小有序排列(i = 0,1,…,n-2)。
 (2)递归函数中将问题分解处理为:若n=1(即只有1个元素时)则返回true而递归出口;n>1时,若最后一对元素不顺序则返回false,否则进行递归调用(传去实参a与 n-1,去判断前n-1个元素的顺序性),并返回递归调用的结果(与前n-1个元素的是否顺序性相同)。
程序流程图:
 

3. 详细设计与编码
程序最主要的是以下两点:
(1) int *a=(int*)malloc(length *sizeof(int));
   printf("请输入数组元素:\n");
   for(int i=0; i<length;i++)
  scanf("%d",&a[i]);
(2)   bool f(int a[],int n)           //非递归算法
{  
原文请找腾讯752018766优,文-论'文.网http://www.youerw.com/   if (a[i]<a[i+1])
  {
   t=false;
  }
    return t;
}

bool f1(int a[],int n)             //递归算法
{  
 if(n==0)
  return true;
 else
 {  
  if(a[n]>a[n-1])
       return false;
  else return f1(a, n-1);程序运行结果:
 
4 . 调试分析:
      调试过程中并没有遇到太大的阻力,主要是因为刚开始没有想到设计中的第(2)部分,后来想到后再来实现它就不是很困难了。
5 . 用户使用说明:
      运行程序,用户输入数组的长度,然后分别输入数组的元素,程序会自动判断输入的数组是否符合要求,输出true或者false。
6 . 设计心得:
  这个程序并不难,主要是有些方面想到想不到的问题,想到了就很简单做了出来,想不到就回感觉很棘手,程序实现的功能较少,所以程序代码也不会太多,因此还是很简短很简单的一个程序的。1605

VC++数组问题递归与非递归源码+流程图下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

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