#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);
}
温馨提示:答案为网友推荐,仅供参考