十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#includestdio.h
创新互联公司专业为企业提供同安网站建设、同安做网站、同安网站设计、同安网站制作等企业网站建设、网页设计与制作、同安企业网站模板建站服务,10年同安做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
void sort(float *a, int n)
{
int i,j,tmp;
for(i=0; in-1; i++)
for(j=0; jn-i-1; j++)
if(a[j]a[j+1])
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
void main()
{
float a[5];
int i;
printf("请输入五个数(逗号隔开):");
scanf("%f,%f,%f,%f,%f",a[0],a[1],a[2],a[3],a[4]);
sort(a,5);
printf("排序后为:");
for(i=0; i5; i++)
printf("%.2f ",a[i]);
printf("\n");
}
或者三个数的。
void sort(int *a, int *b, int *c)
{
int tmp;
if(*a*b){
tmp = *b;
*b = *a;
*a = tmp;
}
if(*a*c){
tmp = *c;
*c = *a;
*a = tmp;
}
if(*b*c){
tmp = *c;
*c = *b;
*b = tmp;
}
return;
}
扩展资料:
C语言中没有预置的sort函数。如果在C语言中,遇到有调用sort函数,就是自定义的一个函数,功能一般用于排序。
一、可以编写自己的sort函数。
如下函数为将整型数组从小到大排序。void sort(int *a, int l)//a为数组地址,l为数组长度。
{
int i, j;
int v; //排序主体
for(i = 0; i l - 1; i ++)
for(j = i+1; j l; j ++)
{
if(a[i] a[j])//如前面的比后面的大,则交换。
{
v = a[i];
a[i] = a[j];
a[j] = v;
}
}
}
对于这样的自定义sort函数,可以按照定义的规范来调用。
二、C语言有自有的qsort函数。
功 能: 使用快速排序例程进行排序。头文件:stdlib.h
原型:
void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数:
1、待排序数组首地址。
2、数组中待排序元素数量。
3、各元素的占用空间大小4 指向函数的指针,用于确定排序的顺序,这个函数必须要自己写比较函数,即使要排序的元素是int,float一类的C语言基础类型。
用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:
#includestdio.h
int main()
{
int i,j,a[10],t;
printf("输入数");
for (i = 0; i 10; i++)
scanf("%d",a[i]);
for (i = 0; i 10; i++)
{
for (j = i + 1; j 10;j++)
if (a[i] a[j]){
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
printf("从大到小");
for (i = 0; i 10; i++)
printf("%2d", a[i]);
return 0;
}
扩展资料:
代码还可以设计,如下:
#includestdio.h
int main()
{
int a[10],i,j,t;//定义数组;
for(i=0;i10;i++){
scanf("%d",a[i]);//给数组赋值;
}
for(i=0;i9;i++)//10个数,进行9轮比较;
for(j=0;j10-i;j++){//第一个数比较9次,依次递减;
if(a[j]a[j+1]) {//交换值;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i10;i++){
printf("%d\n",a[i]);//输出数组的值;
}
return 0;
}
}
printf("the sorted numbers:\n");
for(i=0;i10;i++)
printf(" %d",a[i]);
printf("\n");
}
参考资料:百度百科-printf
#includestdio.h
#define N 100
void paixu(int *, int *, int);//声明函数
int main()
{
int a[N],c[N];
int i,n=0;
printf("请输入n个整数:");
for(i=0;;i++)
{
scanf("%d",a[i]);
n++;
if(getchar()=='\n')
break;
}
paixu(a, c, n);//调用函数,数组只需给出数组名
return 0;
}
void paixu(int a[N],int c[N], int n)
{
int i,j,s=0;
for(i=0;in;i++)
{
c[i]=0;
}
for(i=0;in;i++)
for(j=i+1;jn;j++)
{
if(a[i]==a[j])
c[i]=1;
}
for(i=0;in;i++)
{
s=1;
for(j=0;jn;j++)
{
if(c[j]==0a[i]a[j])
{
s++;
}
}
printf("%d ",s);
}
}