在一个整数数组中,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。
Input
有2×n+1行输入:第一行是要处理的数组的个数n;对其余2×n行,第一行是此数组的元素个数k(3≤k≤80),第二行是k个整数,每两个整数之间用空格分隔。
Output
输出为n行:每行对应于相应数组的所有极值点下标值,下标值之间用空格分隔。
#include <stdio.h>
main()
{int n,j,i,k,a[80];
scanf("%d",&n);
for(j = 0; j < n; j++)
{
scanf("%d",&k);
for(i = 0; i <k; i++ )
{
scanf("%d",&a[i]);
for(i = 0;i < k; i++)
{
if( i == 0)
{
if((a[i] > a[i+1])||(a[i]<a[i+1]) )
printf("%d ",i);
}
else if((a[i]>a[i+1]&&a[i]>a[i-1])||(a[i]<a[i+1]&&a[i]<a[i-1]))
printf("%d ",i);
else ;
}
}
printf("\n");
}
return 0;
}
不懂哪里出问题了 求指导
Input
有2×n+1行输入:第一行是要处理的数组的个数n;对其余2×n行,第一行是此数组的元素个数k(3≤k≤80),第二行是k个整数,每两个整数之间用空格分隔。
Output
输出为n行:每行对应于相应数组的所有极值点下标值,下标值之间用空格分隔。
#include <stdio.h>
main()
{int n,j,i,k,a[80];
scanf("%d",&n);
for(j = 0; j < n; j++)
{
scanf("%d",&k);
for(i = 0; i <k; i++ )
{
scanf("%d",&a[i]);
for(i = 0;i < k; i++)
{
if( i == 0)
{
if((a[i] > a[i+1])||(a[i]<a[i+1]) )
printf("%d ",i);
}
else if((a[i]>a[i+1]&&a[i]>a[i-1])||(a[i]<a[i+1]&&a[i]<a[i-1]))
printf("%d ",i);
else ;
}
}
printf("\n");
}
return 0;
}
不懂哪里出问题了 求指导