请编写函数fun,它的功能是对长度为n个字符串,除首尾符外,将其余n-2个字符按降序排列,例如,原来的字符

如题所述

第1个回答  2010-12-22
#include<stdio.h>
#include<math.h>
main(){
char st[100],temp;
int i,j;
printf("请输入想排序的字符串:\n");
scanf("%s",st);
for(i=1;i<strlen(st)-2;i++)
// printf("%d\n\n",strlen(st));
for(j=1;j<strlen(st)-1-i;j++){
if(st[j]<st[j+1]){
temp=st[j];
st[j]=st[j+1];
st[j+1]=temp;
}
}
printf("%s",st);
getch();
}
第2个回答  2010-12-21
学一下排序算法,要么直接用库里的qsort()即可。其实字母都是 char型可以,是可以比较大小的。本回答被网友采纳
第3个回答  2010-12-21
#include<stdio.h>
#include<string.h>
#define max 100

void fun(char ch[]){
char *p,*t,temp;
p=ch;
p++;
while(*(p+2))
{
t=p+1;
while(*(t+1))
{
if(*p<*t)
{
temp=*p;
*p=*t;
*t=temp;
}
t++;
}
p++;
}
}
void main(){
char x[max];
printf("input a char:\n");
gets(x);
fun(x);
puts(x);
}
第4个回答  2010-12-23
int cmp(const void *a, const void *b)
{
return *(char *)b-*(char *)a;
}
void fun(char str[], int n)
{
qsort(str+1, n-1, sizeof(char), cmp);
}