C语言中将三个数字进行排序的几种写法
方法1:用3个变量存放3个数字,按从大到小的顺序排:
int a,b,c,tmp;
printf(“请输入3个数字:”);
scanf(“%d%d%d”,a,b,c);
if(ab)//如果a比b小,交换a和b的值,使a存放大的数字
{
tmp=a;
a=b;
b=tmp;
}
if(ac)//如果a比c小,交换a和c的值,使a存放大的数字
{
tmp=a;
a=c;
c=tmp;
}
if(bc)//如果b比c小,交换b和c的值,使b存放大的数字
{
tmp=b;
b=c;
c=tmp;
}
printf(“按照从大到小的顺序为:%d,%d,%d\n”,a,b,c);
方法2:用数组存放3个变量,用冒泡排序的方法进行排序
int i=0,j=0,tmp=0,a[3];
printf(“请输入3个数字:”);
for(i=0;i3;i++)
scanf(“%d”,a[i]);
for(i=0;i2;i++)
for(j=0;j2-i;j++)
if(a[i]a[i+1])//按照从大到小排列
{
tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
printf(“按照从大到小的顺序为:”);
for(i=0;i3;i++)
printf(“%d “,a[i]);
printf(“\n”);
C语言中要把三个数从大到小排列出来应该怎么编?
初学简单版本代码如下:
#includestdio.h
int main( )
{
int a, b, c;//定义三个数的变量
int t ;//定义作为交换的变量
scanf ( “%d%d%d” , a, b, c ) ; //取值
if ( a b )
{t = a; a = b; b = t ;};//如果a,b,进行交换,反之不动
if ( a c )
{t = a; a = c; c = t ;};//同上
if ( b c )
{t = b; b = c; c = t ;};
printf( “%-5d%-5d%-5d\n” , a, b, c);//输出
}
扩展资料:
C语言中其他多个数排序的方法:
1、冒泡排序法
#include stdio.h
#define SIZE 8
void bubble_sort(int a[], int n);
void bubble_sort(int a[], int n)
{
int i, j, temp;
for (j = 0; j n – 1; j++)
for (i = 0; i n – 1 – j; i++)
{
if(a[i] a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
} } }
int main()
{
int number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};
int i;
bubble_sort(number, SIZE);
for (i = 0; i SIZE; i++)
{
printf(“%d\n”, number[i]);
}
}
2、选择排序
#includestdio.h
void main()//主函数
{
int a[10];
int i,j,w;
printf(“请输入10个数字: \n”);
for(i=0;i10;i++)
scanf(“%d”,a[i]);
for(i=0;i10;i++)
{
for(j=i+1;j10;j++)
if(a[i]a[j])//进行比较
//比较后进行交换
{
w=a[i];
a[i]=a[j];
a[j]=w;
}
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
C语言中三个数排序
用C语言编写通过if将3个数排序:
#includestdio.h/*函数头:输入输出头文件*/
void main()/*空类型:主函数*/
{
inta,b,c,t;/*定义变量的数据类型为整型*/
printf(“输入3个数,中间用空格隔开:”);/*输出文字提示*/
scanf(“%d%d%d”,a,b,c);/*输入3个数字*/
if(ab)/*判断a是否小于b*/
{t=a;a=b;b=t;}/*是,则a、b的值互换*/
if(ac)/*判断a是否小于c*/
{t=a;a=c;c=t;}/*是,则a、c的值互换*/
if(bc)/*判断b是否小于c*/
{t=b;b=c;c=t;}/*是,则b、c的值互换*/
printf(“从小到大:%d,%d,%d\n”,c,b,a);/*输出从小到大排列的数*/
printf(“从大到小:%d,%d,%d\n”,a,b,c);/*输出从大到小排列的数*/
}
扩展资料
输入三个数,比较其大小,并从大到小输出。
#includestdio.h
int main(){
inta,b,c;
scanf(“%d%d%d”,a,b,c);
if(ab){
intflag=a;
a=b;
b=flag;
}
if(ac){
intflag=a;
a=c;
c=flag;
}
if(bc){
intflag=b;
b=c;
c=flag;
}
printf(“%d%d%d”,a,b,c);
}
用C语言怎么对三个数排序
#include stdio.h
int main()
{
int a,b,c;
int tmp;
scanf(“%d%d%d”,a,b,c);
if(ab)
{tmp=a; a=b; b=tmp;}
if(ac)
{tmp=a; a=c; c=tmp;}
if(bc)
{tmp=b; b=c; c=tmp;}
printf(“升序为: %d %d %d\n”,a,b,c);
}
示例运行结果:
2 6 5
升序为: 2 5 6
6 9 3
升序为: 3 6 9
用C语言将3个数排序~
scanf(“%d,%d,%d”,a,b,c);与请输入三个数a,b,c:3 4 5
这两句写错了,你看看scanf()函数怎么用。
你可以改成:
scanf(“%d%d%d”,a,b,c);然后输入 :3 4 5
或者不改scanf(“%d,%d,%d”,a,b,c); 输入改成: 3,4,5