中软面试题:判断数组是否递增。
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;
}
本文介绍了一道中软公司的面试题目:如何判断一个数组是否为递增序列,并提供了两种实现方法——使用循环和递归。通过具体的C语言代码示例,详细解释了每种方法的工作原理。

被折叠的 条评论
为什么被折叠?



