中软面试题:判断数组是否递增。
1、 用循环
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[10] = {0,1,2,3,4,5,6,7,8,9};
int i;
int flag = 1;//假设递增
for(i = 0; i < 9; i++)
{
if(a[i] > a[i+1])//递减
{
flag = 0;
break;
}
}
if(flag)
{
printf("递增\n");
}
else
{
printf("非递增\n");
}
return 0;
}
此处需要注意,在for循环中,i 小于9, 而不能小于10,因为当i = 9时,i+1 = 10,a[10]这个元素不存在,程序不会报错,但是会出现错误的结果。
2、用递归
#include <stdio.h>
#include <stdlib.h>
int a[10] = {0,1,2,3,4,5,6,7,8,9};
int isadd(int n)
{
if(n == 8)
{
return a[n] < a[n+1];//递增输出1,非递增输出0
}
else
{
return ((a[n] < a[n+1]) && isadd(n+1));
}
}
int main()
{
printf("%d",isadd(0));
return 0;
}