C语言:调用自定义交换函数,完成5个浮点数从小到大排列
3个回答
展开全部
正如楼上所说,这个方法是很多的。我举一个例子:
#include<stdio.h>
void swap(double *x,double *y)//定义交换函数
{
double temp;
temp=*x;
*x=*y;
*y=temp;
}
main()
{
int i,j;
double st[]={5,3,1,6,2};
for(i=0;i<=3;i++) //冒泡排序
for(j=0;j<=3-i;j++)
if(st[j]>st[j+1])
swap(&st[j],&st[j+1]);
for(i=0;i<5;i++) //输出
printf("%f\t",st[i]);
}
这个程序只能给5,3,1,6,2排序,要想给任意的数排序稍微改动一下就行了,请楼主自己完成,不会的话随时可以问我。
#include<stdio.h>
void swap(double *x,double *y)//定义交换函数
{
double temp;
temp=*x;
*x=*y;
*y=temp;
}
main()
{
int i,j;
double st[]={5,3,1,6,2};
for(i=0;i<=3;i++) //冒泡排序
for(j=0;j<=3-i;j++)
if(st[j]>st[j+1])
swap(&st[j],&st[j+1]);
for(i=0;i<5;i++) //输出
printf("%f\t",st[i]);
}
这个程序只能给5,3,1,6,2排序,要想给任意的数排序稍微改动一下就行了,请楼主自己完成,不会的话随时可以问我。
展开全部
我帮你写了一个,希望能帮到你
#include<stdio.h>
void swap(double a[5])//交换函数
{
int i, j;
double temp;
for(i=0;i<5;i++)
{
for(j=i;j<5;j++)
{
if(a[j]<a[i])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
int main()
{
int m;
double a[5];
for(m=0;m<5;m++) //输入5个浮点数
{
scanf("%lf",&a[m]);
}
swap(a);
for(m=0;m<5;m++)//输出排序结果
{
printf("%lf ", a[m]);
}
printf("\n");
return 0;
}
#include<stdio.h>
void swap(double a[5])//交换函数
{
int i, j;
double temp;
for(i=0;i<5;i++)
{
for(j=i;j<5;j++)
{
if(a[j]<a[i])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
int main()
{
int m;
double a[5];
for(m=0;m<5;m++) //输入5个浮点数
{
scanf("%lf",&a[m]);
}
swap(a);
for(m=0;m<5;m++)//输出排序结果
{
printf("%lf ", a[m]);
}
printf("\n");
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
排列是很经典的题目 常用的方法有冒泡法 选择法 他们都是通过数组存储 核心思想都很简单 建议你自己上网搜下算法 自己搞定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询