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和

其实你这样复杂了 看第一个 x>y 你的操作将 x 和 y 中 较大的那个值放进了 y 然后看 y>z 你的操作把 y 和 z 中的较大值 放进了z中 其实 z 就是 最大值 然后 另外两个 变量 x,y 里记录的就是 第二大 和第三大的值(你这句好像错了) 如果 x> y 则 让 temp=x; x=y; y= temp; 这样 x 中储存的值就是最小值 然后可得 x< y<z

你好.看代码#include <stdio.h> void sort(int *a,int *b,int *c) { int t; t=*a; *a=*a>*b?*a:*b; *b=*a>*b?*b:t; t=*a; *a=*a>*c?*a:*c; *c=*a>*c?*c:t; t=*b; *b=*b>*c?*b:*c; *c=*b>*c?*c:t; } int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); sort(&a,&b,&c); printf("%d %d %d\n",c,b,a); return 0; } 谢谢

设3个数分别等于a,b,c1、先比较a,b大小,如果a大,则进行下一步继续比较,如果b大,则a,b的数值互换2、同上这次是b,c比较大小3、最后显示a,b,c

方法如下:1.从控制台读入三个数;2.实现三个数从小到大排序:(1)将第一个数作为最小数,依次和第二,三个数进行比较.两次比较重如果有任意一个比第一个小,则将两个数交换 ;(2)在(1)步后,得到第一个数为最小数.再将第二个数与第三个数比较大小后即可实现三个数从小到大排序.拓展资料 两种常用排序方法:1.选择排序法:从一列数中,选择第一个作为最小数,依次和后面的数进行比较.如有比第一个数小的数,则交换两个数.最后排到该列数都倒数第二个时,这列数就从小到大排好了顺序.2.冒泡排序法:思路与选择排序法一致.不同的是,冒泡排序将第一个作为最大数,然后再和该数后的数进行比较.

#include "stdio.h"void swap(int *p1, int *p2, int *p3) { int t; if (*p1 > *p2) { t = *p1; *p1 = *p2; *p2 = t; } if (*p1 > *p3) { t = *p1; *p1 = *p3; *p3 = t; } if (*p2 > *p3) { t = *p2; *p2 = *p3; *p3 = t; }}void main() { int a, b, c; int *p1 = &a, *p2 = &b, *p3 = &c;

冒泡法:#include "stdio.h"#define N 3 void main() { int a[N],i,j,temp; printf("输入数字\n"); for(i=0;i<N;i++) scanf("%d",&a[i]); for(i=0;i<N-1;i++) for(j=0;j<N-i-1;j++) if(a[j]>a[j+1]) { temp=a[j];a[j]=a[j+1];a[j+1]=temp; } for(i=0;i<N;i++) printf("%d,",a[i]); }

#include<stdio.h> void pai(); main(){ int a[3],i; for(i=0;i<3;i++) scanf("%d",&a[i]); pai(); for(i=0;i<3;i++) printf("%d",a[i]); } void pai(){ int i,j,t; for(i=0;i<3;i++) for(j=i+1;j<2;j++) if(a[i]>a[j]) { t=a[j]; a[j]=a[i]; a[i]=a[j]; } } 排序一下就行 仔细看看 理解是王道 采纳哦~

#include<stdio.h> void main() { int a[10],i,j,z,n,m; printf("please enter 10 number:"); for(n=0;n<10;n++) scanf("%d",&a[n]); for(i=0;i<=9;i++) for(j=0;j<10;j++) if(a[j]>a[j+1]) {z=a[j]; a[j]=a[j+1]; a[j+1]=z;} for(m=0;m<10;m++) printf("%d\t",a[m]); }scanf_s("%d",a[n]);是scanf("%d",&a[n]); 并且你的排序不对.

直接上代码:#include <stdio.h>#include <stdlib.h>//返回两者中较大数 int max(int a,int b) { return a>b?a:b; }//返回两者中较小数 int min(int a,int b) { return a<b?a:b; } int main() { int x,y,z; int p1,p2,p3;//p1保存最大数,p2保存最小数 scanf("%d%d

相关文档

c语言编程三个数比大小
c语言排列3个数字
c语言输入三个数排序
冒泡排序法c语言代码
c语言数字排序
c语言中将数字大小排序
c语言从大到小排序
c语言100000个数字排序
prpk.net
kcjf.net
zdly.net
zdhh.net
knrt.net
电脑版