1.问题描述:
给出一串数,找出这样的数,比他们前面的数都大,比它后面的数都小。 要求:输入的数个数要大于3
解答:思路,写一个函数,该函数的功能是找出指定数组当中以i为下标的数是否满足条件:
比他们前面的数都大,比它后面的数都小。若满足,则返回true,否则返回false.
源程序:
/*************
给出一串数,找出这样的数,比他们前面的数都大,比它后面的数都小。
要求:
输入的数个数要大于3
思路:分别找出比前面都大并且比后面都小的数,两种情况都满足
*************/
#include<stdio.h>
#define MAX_SIZE 200
bool Search(int *a ,int Length ,int i)
{
int j,k;
for(j = i-1;j >=0 ;j--){
if(a[i] < a[j])
return false;
}
for(j = Length-1;j >= i+1 ;j--){
if(a[i] > a[j])
return false;
}
return true;
}
int main()
{
int n,a[MAX_SIZE] ,i;
scanf("%d",&n);
if(n > MAX_SIZE)
return 0;
for( i = 0;i < n;i++){
scanf("%d",&a[i]);
}
for(i = 1;i < n-1; i++){
if(Search(a,n,i)){
printf("%d/n",a[i]);
}
}
return 0;
}
运行情况如下:
若有以下输入:
4
1 6 2 9 10 23
则运行结果为:
9 10
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有