看你的程序是在用冒泡法排序,冒泡法是比较相邻的两个数,所以应该是:
if(s[j]<s[j+1]) { t=s[j];s[j]=s[j+1];s[j+1]=t; } 数组下标都是j,不是i
另外注意有j+1,所以循环中的终值要注意选好。
下面的程序调试运行通过:
#include<stdio.h>
int main()
{
char s[50]="dfjewjoijewfok",c;
int i,j;
for(i=0;i<strlen(s);i++)
for(j=0;j<strlen(s)-1-i;j++)
if(s[j]<s[j+1])
{
c=s[j];s[j]=s[j+1];s[j+1]=c;
}
printf("%s\n",s);
return 0;
}
温馨提示:内容为网友见解,仅供参考