01 #include<cstdio> 02 #include<cstring> 03 using namespace std; 04 int main() { 05 char str[60]; 06 int len, i, j, chr[26]; 07 char mmin = 'z'; 08 scanf("%s", str); 09 len = strlen(str); 10 for (i = len - 1; i >= 1; i--) 11 if (str[i - 1] < str[i]) break; 12 if (i == 0) { 13 printf("No result!\n"); 14 return 0; 15 } 16 for (j = 0; j < i - 1; j++) putchar(str[j]); 17 memset(chr, 0, sizeof(chr)); 18 for (j = i; j < len; j++) { 19 if (str[j] > str[i - 1] && str[j] < mmin) 20 mmin = str[j]; 21 chr[str[j] - 'a']++; 22 } 23 chr[mmin - 'a']--; 24 chr[str[i - 1] - 'a']++; 25 putchar(mmin); 26 for (i = 0; i < 26; i++) 27 for (j = 0; j < chr[i]; j++) 28 putchar(i + 'a'); 29 putchar('\n'); 30 return 0; 31 }
1. 输入的字符串长度应该在 [1,59] 的范围内。( )
2. 如果输入的字符数组所有字符都是从大到小的,那么会输出 No result! 。( )
3. 第 25 行输出的值为输入字符串里的 ASCII 最小的那个字符。( )
4. 第 26 行到第 28 行是把 chr[] 数组中存在的对应字符按照从小到大输出,即把剩下未输出的字符按照从小到大输出。( )
5. 如果输入的是 abcdzdcba ,则第 16 行输出的是 ( )。
6. 如果程序的输出结果是 fhhggh ,则输入有可能是 ( )。