如题所述
代码文本:
#include "stdio.h"
#define N 10
void myf(char *p){
char i,j,k,n;
for(n=0;p[n];n++);
for(n--,i=1;i<n-1;i++){
for(j=(k=i)+1;j<n;j++)
if(p[k]<p[j])
k=j;
if(k!=i)
j=p[k],p[k]=p[i],p[i]=j;
}
}
int main(int argc,char *argv[]){
char s[N+1];
printf("Enter a string(length 10)...\n");
scanf("%10s",s);
printf("After ordering:\n");
myf(s);
puts(s);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2020-06-12
10个字符,除去首位,还又8个,
降序排列,那就要比大小,比大小一定要2层循环,一层不行的
For(i=1,i<10,i++)
For(j=i+1,j<10,j++)
If S[i]>s[j]
替换
降序排列,那就要比大小,比大小一定要2层循环,一层不行的
For(i=1,i<10,i++)
For(j=i+1,j<10,j++)
If S[i]>s[j]
替换