#include<stdio.h>
#include<string.h>
int main()
{
int n,m;
char a[101];
scanf("%d",&n);
while(n--)
{
int i,j;
scanf("%s %d",&a,&m);
int last = m,first = 0;
char max;
for(i = 0;i < strlen(a)-m;i++)
{
max = '0';
for(j = first;j <= last;j++)
{
if(max < a[j])
{
max = a[j];
first = j+1;
}
}
printf("%c",max);
last ++;
}
printf("\n");
}
return 0;
#include<string.h>
int main()
{
int n,m;
char a[101];
scanf("%d",&n);
while(n--)
{
int i,j;
scanf("%s %d",&a,&m);
int last = m,first = 0;
char max;
for(i = 0;i < strlen(a)-m;i++)
{
max = '0';
for(j = first;j <= last;j++)
{
if(max < a[j])
{
max = a[j];
first = j+1;
}
}
printf("%c",max);
last ++;
}
printf("\n");
}
return 0;
}
这个题有个小细节 出了问题 ,让我真的是找了好长时间啊。以后要改变方法,在找到数组中最大值的时候,初始值要设置一个一定小于所以数的值,这样不容易出错。