递归法和循环法判断数组是否递增
2015-10-06 15:31
232 查看
#include<iostream> using namespace std; #include <stdio.h> bool Judgment(int a[], int num) { static int i = 0; bool flag = true; for(i=0; i<num-1; i++) { if (a[i]>=a[i+1]) //假如发现哪两个不是递增,立刻跳出; { flag = false; break; } } return flag; } bool Judgment1(int a[],int num)//递归法 { if(num<=1) return true; if(a[num-2]>=a[num-1]) return false; return Judgment1(a,num-1); } void test1(char * name,bool flag)//测试1,递增数组 { if(name!=NULL) printf("%s: \n",name); int arr[]={1,2,3,4,5}; if(flag==Judgment(arr,sizeof(arr)/sizeof(arr[0]))) printf("Judgment Success!\n"); if(flag==Judgment1(arr,sizeof(arr)/sizeof(arr[0]))) printf("Judgment1 Success!\n"); } void test2(char * name,bool flag)//测试2、只含一个元素的数组 { if(name!=NULL) printf("%s: \n",name); int arr[]={1}; if(flag==Judgment(arr,sizeof(arr)/sizeof(arr[0]))) printf("Judgment Success!\n"); if(flag==Judgment1(arr,sizeof(arr)/sizeof(arr[0]))) printf("Judgment1 Success!\n"); } void test3(char * name,bool flag)//非递增数组 { if(name!=NULL) printf("%s: \n",name); int arr[]={1,-1}; if(flag==Judgment(arr,sizeof(arr)/sizeof(arr[0]))) printf("Judgment Success!\n"); if(flag==Judgment1(arr,sizeof(arr)/sizeof(arr[0]))) printf("Judgment1 Success!\n"); } int main() { test1("test1",true); test2("test2",true); test3("test3",false); getchar(); return 0; }
相关文章推荐
- ruby 数组使用教程
- Ruby中的数组和散列表的使用详解
- C#实现AddRange为数组添加多个元素的方法
- C#动态调整数组大小的方法
- 详解Lua中的数组概念知识
- Perl中的列表和数组学习笔记
- 探索PowerShell (八) 数组、哈希表(附:复制粘贴技巧)
- C#中数组初始化与数组元素复制的方法
- C#交错数组用法实例
- PowerShell数组的一些操作技巧
- C#中的递归APS和CPS模式详解
- C#通过yield实现数组全排列的方法
- C#不重复输出一个数组中所有元素的方法
- C#实现将数组内元素打乱顺序的方法
- WinForm实现按名称递归查找控件的方法
- C#中的尾递归与Continuation详解
- Ruby简明教程之数组和Hash介绍
- C语言查找数组里数字重复次数的方法
- C语言柔性数组实例详解
- Perl中怎样从数组中删除某个值?