递归法和循环法判断数组是否递增

来源:互联网 发布:公安大数据情报分析 编辑:程序博客网 时间:2024/04/29 13:02
#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;}  




0 0