|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #include <string.h>
- int main(){
- char ch[128];
- int i = 0,flag = 1,len;
- gets(ch);
- len = strlen(ch);
- i = len - 1;
- for(; i >= 0;i--){
- if(ch[i]>ch[i-1] && ((i - 1) != 0)){
- char temp;
- temp = ch[i];
- ch[i ] = ch[i - 1];
- ch[i - 1] = temp;
- break;
- }
- else if(ch[i]>ch[i-1] && ((i - 1) == 0)){
- char temp;
- temp = ch[i];
- ch[i ] = ch[i - 1];
- ch[i - 1] = temp;
- for(int j = len - 1; j > 1; j--){
- int max = j;
- for(int k = 2; k < j; k++){
- if(ch[k] > ch[max]){
- max = k;
- }
- }
- if(max != j){
- char temp;
- temp = ch[j];
- ch[j] = ch[max];
- ch[max] = temp;
- }
- }
- }
- }
- printf("%s",ch);
- return 0;
- }
复制代码
输入abcd可以打印出abdc的,但是输入ayxf就什么也不打印了,返回值是零。
代码是什么功能我不知道,但是 if(ch[i]>ch[i-1] && ((i - 1) != 0))这一句,当i=0的时候,i-1就不等于0,等于-1了,你在if里面又对ch[-1]赋值,肯定出错,改成 if(ch[i]>ch[i-1] && ((i - 1)> 0))就不会出错了,但是程序功能是不是你想要的就不知道了
|
|