百练 打印极值点下标 2691

2691:打印极值点下标

  • 查看
  • 提交
  • 统计
  • 提示
  • 提问
总时间限制:
1000ms
内存限制:
65536kB
描述
在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。
输入
有2×n+1行输入:第一行是要处理的数组的个数n;对其余2×n行,第一行是此数组的元素个数k(4<k<80),第二行是k个整数,每两个整数之间用空格分隔。
输出
输出为n行:每行对应于相应数组的所有极值点下标值,下标值之间用空格分隔。
样例输入
3
10
10 12 12 11 11 12 23 24 12 12
15
12 12 122 112 222 211 222 221 76 36 31 234 256 76 76 
15
12 14 122 112 222 222 222 221 76 36 31 234 256 76 73 
样例输出
0 7
2 3 4 5 6 10 12
0 2 3 10 12 14
 
#include<stdio.h>
#include<stdlib.h>
int main(){
	int m,i,j,n; 
	scanf("%d",&n);

	int a[85];
	while(n--){
		scanf("%d",&m);
		for(i=0; i<m; i++){
			scanf("%d",&a[i]);
		}
		for(j=0; j<m; j++){
			
			if(j==0 && (a[j]<a[j+1] || a[j]>a[j+1])){
				printf("%d ",j);
				
			}
			else if(j==m-1 && (a[j]<a[j-1] || a[j]>a[j-1])){
				printf("%d ",j);
			
			}
			else if((a[j]<a[j+1] && a[j]<a[j-1]) || (a[j]>a[j+1] && a[j]>a[j-1])){
				printf("%d ",j);
			
			}
		}
		printf("\n");
	}
	return 0;
}

你可能感兴趣的:(百练 打印极值点下标 2691)