1. c语言排序方法有哪几种
C,语言常用的排序方法有很多种。比如说冒泡排序,直接交换排序,直接选择排序,直接插入排序,二分插入排序,快速排序,归并排序,二叉排序树排序,小学生排序,等等。
2. C语言:编写函数,用冒泡法对一组数按从小到大的顺序进行3轮排序
#include "stdio.h"
void fun(int a[],int n)
{ int i,j,t;
for(i=0; i<3; i++)
for(j=0; j<n-1-i; j++)
if(a[j]>a[j+1])
{ t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
main()
{ int a[10],i;
for(i=0; i<10; i++)
scanf("%d",&a[i]);
fun(a,10);
for(i=0; i<10; i++)
printf("%5d",a[i]);
printf(" ");
}
3. c语言程序:有3个数a,b,c,按由大到小的顺序排列。
#include<stdio.h>
voidmax(int*x,int*y)
{
intt;
if(*x<*y)
{
t=*x;
*x=*y;
*y=t;
}
}
voidmain()
{
inta,b,c,t;
printf("请输入3个整数 ");
scanf("%d%d%d",&a,&b,&c);
max(&a,&b);
max(&a,&c);
max(&b,&c);
printf("从大到小排序: ");
printf("%d%d%d ",a,b,c);
}
4. C语言中三个数排序
用C语言编写通过if将3个数排序:
#include<stdio.h>/*函数头:输入输出头文件*/
void main()/*空类型:主函数*/
{
inta,b,c,t;/*定义变量的数据类型为整型*/
printf("输入3个数,中间用空格隔开:");/*输出文字提示*/
scanf("%d%d%d",&a,&b,&c);/*输入3个数字*/
if(a<b)/*判断a是否小于b*/
{t=a;a=b;b=t;}/*是,则a、b的值互换*/
if(a<c)/*判断a是否小于c*/
{t=a;a=c;c=t;}/*是,则a、c的值互换*/
if(b<c)/*判断b是否小于c*/
{t=b;b=c;c=t;}/*是,则b、c的值互换*/
printf("从小到大:%d,%d,%d ",c,b,a);/*输出从小到大排列的数*/
printf("从大到小:%d,%d,%d ",a,b,c);/*输出从大到小排列的数*/
}
(4)c语言三大排序扩展阅读
输入三个数,比较其大小,并从大到小输出。
#include<stdio.h>
int main(){
inta,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a<b){
intflag=a;
a=b;
b=flag;
}
if(a<c){
intflag=a;
a=c;
c=flag;
}
if(b<c){
intflag=b;
b=c;
c=flag;
}
printf("%d%d%d",a,b,c);
}
5. C语言3个字母从大到小排序问题求解释!!
#include"stdio.h"
voidmain()
{
inta,b,c;
inttmp;
printf("输入三个数abc:
");
scanf("%d%d%d",&a,&b,&c);
//scanf("%c%c%c",&a,&b,&c);//(%c是字符,%d才是整数)
if(a>b)//如果a比b大,那么就将ab的值交换,让小数在前面
{
tmp=a;
a=b;
b=tmp;
}
if(a>c)//如果a比c大,那么就把ac的值交换,让小数在前面
{
tmp=a;
a=c;
c=tmp;
}
if(b>c)//比较下bc哪个大,交换两者的值,让小数在前面
{
tmp=b;
b=c;
c=tmp;
}
printf("%d%d%d
",a,b,c);//综上这是一个从小到大排列的程序,不是从大到小
system("pause");
return;
}
//你这么想,世界杯看过吧,亚军和季军要互相打下看谁能拿到第二名,一样的道理。三个人想知道谁的乒乓球技术最好,那么三个人轮流打比赛。先A:B,赢的人就进入下一轮是吧,假如A水平比较厉害,那么A和C比试下,看下谁赢,,如果还是A赢了,那A就是最厉害的,可是谁第二呢。B和C还没切磋过,那就B:C,看下谁赢了,如果B赢了,那B就是第二厉害的。这个程序的顺序和比赛是一回事,就是把最厉害的那个人挑出来起,然后输了的人就接着跟别人比赛。
6. C语言中将三个数字进行排序的几种写法
方法1:用3个变量存放3个数字,按从大到小的顺序排:
int a,b,c,tmp;
printf("请输入3个数字:");
scanf("%d%d%d",&a,&b,&c);
if(a<b)//如果a比b小,交换a和b的值,使a存放大的数字
{
tmp=a;
a=b;
b=tmp;
}
if(a<c)//如果a比c小,交换a和c的值,使a存放大的数字
{
tmp=a;
a=c;
c=tmp;
}
if(b<c)//如果b比c小,交换b和c的值,使b存放大的数字
{
tmp=b;
b=c;
c=tmp;
}
printf("按照从大到小的顺序为:%d,%d,%d ",a,b,c);
方法2:用数组存放3个变量,用冒泡排序的方法进行排序
int i=0,j=0,tmp=0,a[3];
printf("请输入3个数字:");
for(i=0;i<3;i++)
scanf("%d",&a[i]);
for(i=0;i<2;i++)
for(j=0;j<2-i;j++)
if(a[i]<a[i+1])//按照从大到小排列
{
tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
printf("按照从大到小的顺序为:");
for(i=0;i<3;i++)
printf("%d ",&a[i]);
printf(" ");
7. C语言的三大排序方式
每一次让最大的拍到最后,然后形成依次从右向左递减的数组
第一个for循环:
控制总共遍历次数
开始每一次遍历
每一次找到一个最大的数沉底
第二个for循环j-1次即可(由于不比较最后一个)
//让j和j+1的值进行比较
当满足后者数比较大时,中间来一个temp中转,使得num[j]与num[j+1]交换数值,然后回到第二次for循环继续比较
第一个for循环从外部控制循环次数
需要循环n-1次(n为数组的总数),
第一个if在for循环内部进行操作
判断i与i+1的大小
如果i比i+1更加大就更换位置
使得最大数沉底
让i对应的值与前面所有的值进行比较 来进行排序 j和j-1进行比较
如果判定后当前位置就是这个数字应该排在的位置
控制次数
取出i对应的数,默认i是头一个数
从i后面开始查找当前最小的数 放到i的位置内层循环
让temp与后面每个数进行比较
temp始终保持最小的那个数
如果有更加小的就交换给进行判断的temp
8. C语言给1,2,3按大小排序,写详细,谢谢
#include <stdio.h>
void swap(int &a,int &b){ //两个元素交换
int t=a;
a=b;b=t;
}
void sort(int &a,int &b,int &c){ //三个数排序
if(a>b)swap(a,b);
if(a>c)swap(a,c);
if(b>c)swap(b,c);
}
int main() {
int a=1,b=2,c=3;
scanf ("%d%d%d",&a,&b,&c);
sort(a,b,c);
printf("%d %d %d",a,b,c);
return 0;
}
9. C语言,,输入3个数,从小到大排序,,用指针做,
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。
10. c语言:3个数abc,按大小顺序输出
代码如下:
#include <stdio.h>
int main()
{
int t,a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a<b)
{
t=a,a=b,b=t;
}
if(a<c)
{
t=a,a=c,c=t;
}
if(b<c)
{
t=b, b=c, c=t;
}
printf("%d %d %d
",a,b,c);
return 0;
}
原理就是运用冒泡算法,把最大的数浮在最上面,而小的数就下沉,最后就输出。
拓展资料:
1、冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
2、它重复地走访过要排序的元素列,一次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。
3、这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
资料来源:网络:冒泡排序