您的位置:首页 > 其它

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

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;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  递归 数组