输入一个字符串,把该字符串中的字符按照由小到大的顺序重新排列

如题所述

#include <stdio.h>

int main()

{char s[200],t;

int i,j,n;

scanf("%s",s);

for(n=0;s[n];n++);

for(i=0;i<n-1;i++)

for(j=0;j<n-1-i;j++)

if(s[j]>s[j+1])

{t=s[j];s[j]=s[j+1];s[j+1]=t;}

printf("%s\n",s);

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-17
#include<stdio.h>
#include<string.h>
int main()
{
    char a[30];     /*用于存放字符串*/
  char *p=a;     /*将指针p指向a*/
    int i,j,length=0;
    char temp;      /*定义一个中间变量temp,用于交换字符的位置*/
  /*输入要排序的字符串*/
  gets(p);
   length=strlen(p);        /*计算字符串的长度*/ 
   /*将字符串中的字符按从小到大的顺序进行比较*/
   for(i=0;i<length-1;i++)
        for(j=i+1;j<length;j++)
        if(p[i]>p[j])
       {   temp=p[i];    p[i]=p[j];   p[j]=temp;    }
    /*输出排序后的字符串*/
   puts(p);
   return 0;
}

本回答被网友采纳
第2个回答  2017-08-10
#include <stdio.h>

int main(){
char str[100];
char ch;
int i,j;
gets(str);
for(i=0;str[i]!='\0';i++)
for(j=i;str[j]!='\0';j++){
if(str[i]>str[j]){
ch=str[i];
str[i]=str[j];
str[j]=ch;
}
}
puts(str);
return 0;
}

第3个回答  2017-08-10
字符串就是字符数组,,,,所以一般的数组排序,也适合,如冒泡排序

~
~
~
相似回答