POJ-1146
来源:互联网 发布:linux man top 编辑:程序博客网 时间:2024/05/22 01:30
#include <stdio.h>#include <string.h>int cmp(const void *a, const void *b){ return *(char *)a - *(char *)b;}int main(){ char str[55], min; int i, j, n; while (scanf("%s", str), strcmp(str, "#")) { i = strlen(str)-1; while (--i >= 0) { min = 127; for (j = i+1; str[j]; j++) { if (str[j] > str[i] && str[j] < min) { min = str[j]; n = j; } } if (min != 127) { str[n] = str[i]; str[i] = min; qsort(&str[i+1], strlen(&str[i+1]), sizeof(char), cmp); printf("%s\n", str); break; } } if (i == -1) printf("No Successor\n"); }}