上传之后才发现头文件少了个ctype.h,因为判断非法输入的时候用到了isalpha(),不加这个头文件的话在gcc下会有警告,在VC下可能编译不过!首先把输入的各个数由小到大进行排序,然后开始1.找出比右边数字小的第一个数,找到这个数后,把它的位置记下来.设这个位置为left_small;如果找不到,就说明排列完成了.2.从右到左寻找第一个大于left_small所在值的数,设为right_big.3.交换perm[left_small]与perm[right_big]的值.4.反转perm[left_small+1]到perm[len]之间的值.如果把整个排列当作一个数的话,实际上整个过程是由小到大的过程,找到的后一个排列刚好是比前一个排列大的