程序填空题:最大字符移位
在字符串 $$str$$ 中找出最大的字符,将在该字符前的所有字符往后顺序移动一位,再把最大字符放在字符串的第一个位置上。如`"knowledge"`变成`"wknoledge"`。
```c++
#include
int main()
{
char max, str[80], *p, *q;
p = str;
gets(p);
max = *p;
p++;
while ( *p != '\0' ){
if ( max < *p ){
max = *p;
@@[q = p](1) ;
}
p++;
}
p = q;
while ( @@[p > str](1) ){
*p = *(p-1);
@@[p--](1);
}
*p = max;
puts(p);
return 0;
}
```
答案:
第1空:q = p
第2空:p > str
第3空:p--
```c++
#include
int main()
{
char max, str[80], *p, *q;
p = str;
gets(p);
max = *p;
p++;
while ( *p != '\0' ){
if ( max < *p ){
max = *p;
@@[q = p](1) ;
}
p++;
}
p = q;
while ( @@[p > str](1) ){
*p = *(p-1);
@@[p--](1);
}
*p = max;
puts(p);
return 0;
}
```
答案:
第1空:q = p
第2空:p > str
第3空:p--