写一个函数,用“起泡法”对输入的10个字符按由大到小的顺序排列 用C++的,哪里错了啊

#include<stdio.h>
void main()
{
char f(char a[10]);
char c[10],b;
int i;
printf("请输入十个字符:\n");
for(i=0;i<10;i++)
scanf("%c",c[i]);
printf("\n");
b=f(c);
printf("从小到大排列顺序是:%c\n",b);
}
char f(char a[10])
{
int i,j,k,t;
char b;
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<10;j++)
if(a[j]<a[k])
k=j;
t=a[k];
a[k]=a[i];
a[i]=t;}
return(b);
}

1.scanf("%c",&c[i]); 2.用空参调用 char f(char a[10]);---void f(char a[10]);
部分程序应该为:
for(i=0;i<10;i++)
scanf("%c",c[i]);
printf("\n");
f(c);
printf("从小到大排列顺序是:\n");
for(i=0;i<10;i++)
printf("%c",a[i]);
printf("\n");
return 0;
}

void f(char a[10])
{{ int i,j;
char c;
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{c=a[i];
a[i]=a[j];
a[j]=c;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-16
# include <stdio.h>
void main()
{
int change(int a[],int j);
int i,a[10];
printf("enter 10 number:\n");
for(i=0;i<10;i++)
scanf(" %d",&a[i]);
printf("\n");
change(a,10);
printf("the sorted number :\n");
for(i=0;i<10;i++)
printf(" %d",a[i]);
printf("\n");
}
int change(int a[],int j)
{
int i,k;
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{
k=a[i];a[i]=a[i+1];a[i+1]=k;
}
return (a[10]);
}
相似回答