本题给定N(不大于20)个元素,求其解右最值问题。所谓“右最值”是指一个序列中某个元素比它的后面所有的元素值都要大的元素,则该元素称为最右值元素。如序列10,9,5,13,2,7,1,8,4,6,3,其最右值元素有13,8,6,3。
输入格式:
第一行输入元素个数;
第二行输入对应的元素。
输出格式:
输出所有的最右值元素,以一个空格隔开,最后也有一个空格。
输入样例:
11
10 9 5 13 2 7 1 8 4 6 3
输出样例:
13 8 6 3
代码实现:
#include<stdio.h>
int main()
{
int p[20],q[20],n,i,j=0,maxmum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&p[i]);
}
for(i=n-1;i>=0;i--)
{
if(p[i]>maxmum)
q[j++]=p[i],maxmum=p[i];
}
for(j--;j>=0;j--)
printf("%d ",q[j]);
return 0;
}