C语言 输入任意长度的字符串,将该字符串中的字符按ASCII码值升序排列后输出

#include<stdio.h>
#include<string.h>
void main()
{
char str[100];
int i,j;
printf("please input a string: ");
gets(str);
for(i=0;i<strlen(str);i++)
{
for(j=i+1;j<strlen(str);j++)
if(str[i]>str[j])
{
char temp;
temp=str[j];
str[j]=str[j+1];
str[j+1]=str[j];
}
}
printf("The ordered string is:");
puts(str);
}

感觉算法没错,为什么输出结果不对?求具体解释~

算法写错了

#include<stdio.h>
#include<string.h>
void main()
{
char str[100];
int i,j;
printf("please input a string: ");
gets(str);
for(i=0;i<strlen(str)-1;i++)
{
for(j=i+1;j<strlen(str);j++)
if(str[i]>str[j]) 
{
char temp; //交换这里错了
temp=str[j];
str[j]=str[i];
str[i]=temp;
}
}
printf("The ordered string is: ");
puts(str);
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网