本题没啥难的地方,关键在于输出格式
#include <stdio.h>
#include <stdlib.h>int main()
{
int n, m;
scanf("%d", &n);
while(n--)
{
scanf("%d", &m);
int *tmp = (int *)malloc(m * sizeof(int));
for(int i = 0; i < m; i++)
scanf("%d", &tmp[i]);
bool flag = true; //标记是否是第一次输出,第一次输出"num", 以后每一次输出" num"
if(tmp[0] > tmp[1] || tmp[0] < tmp[1])
{
printf("%d", 0);
flag = false;
}
for(int i = 1; i < m-1; i++)
{
if(tmp[i] > tmp[i-1] && tmp[i] > tmp[i+1])
{
if(flag)
{
printf("%d", i);
flag = false;
}
else
printf(" %d", i);
}
else if(tmp[i] < tmp[i-1] && tmp[i] < tmp[i+1])
{
if(flag)
{
printf("%d", i);
flag = false;
}
else
printf(" %d", i);
}
}
if(tmp[m-1] > tmp[m-2] || tmp[m-1] < tmp[m-2])
if(flag)
{
printf("%d", m-1);
flag = false;
}
else
printf(" %d", m-1);
printf("\n");
}
return 0;
}
打印极值点下标-OpenJ_Bailian - 2691(水题)
猜你喜欢
转载自blog.csdn.net/mch2869253130/article/details/85408182
今日推荐
周排行