C语言编程题,输入三个整数,按从大到小的顺序输出

C语言编程题,输入三个整数,按从大到小的顺序输出谢谢大佬们

第1个回答  2018-05-18

#include <stdio.h>
int main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a<b){

t=a;a=b;b=t; 

}

if(b<c){ 

t=b;b=c;c=t;
}
printf("%d%d%d",a,b,c);
return 0;
}

第2个回答  2015-12-26

问题:输入三个数x,y,z,把其中的最大值赋值给x,中间赋值给y,最小值赋值给z。

参考代码:

#include "stdio.h"
int main()
{
int x,y,z,max,min;
scanf("%d%d%d",&x,&y,&z);
if(x>y){
max=x;
min=y;
}
if(z>max) max=z;
if(min>z) min=z;
y=x+y+z-max-min;
x=max;
z=min;
printf("从大到小排序:%d %d %d\n",x,y,z);       
}
/*
运行结果:
3 1 2
从大到小排序:3 2 1
*/

第3个回答  2012-11-11
#include<stdio.h>

void fun(int *pa,int *pb);

int main()
{
int a,b,c;
printf("请输入三个整数a,b,c:\n");
scanf("%d,%d,%d",&a,&b,&c);

fun(&a,&b);
fun(&b,&c);
fun(&a,&b);

printf("三个数由小到大排列为:%d,%d,%d\n",c,b,a);
return 0;
}

//比较两数的大小,并让大数保存在pa指向的空间,小数保存在pb指向的空间
void fun(int *pa,int *pb)
{
int tmp;
if(*pb<*pa)
{
tmp=*pa;
*pa=*pb;
*pb=tmp;
}
}
第4个回答  2009-12-08
三种方法,后两种适合3个数以上的情况

main()
{
int a, b, c;
scanf("%d%d%d", &a, &b,&c);
if(a<b)
{
a=a+b;
b=a-b;
a=a-b;
}
if(a<c)
{
a=a+c;
c=a-c;
a=a-c;
}
if(b<c)
{
b=b+c;
c=b-c;
c=b-c;
}
printf("%d %d %d",a,b,c);
}

起泡法对数组进行排序
main()
{
int a[3], i, j, t;
for(i=0; i<3; i++)
{
scanf("%d", &a[i]);
}
for(i=1; i<3; i++)
{
for(j=0; j<3-i; j++)
{
if(a[j]<a[j+1])
{
t=a[j];a[j]=a[j+1]; a[j+1]=t;
}
}
}
for(i=0; i<3; i++)
printf("%d\t", a[i]);
}

选择法对数组排序
main()
{
int a[3], i, j, k, t;
for(i=0; i<3; i++)
{
scanf("%d", &a[i]);
}
for(i=0; i<3; i++)
{
k=i;
for(j=i+1; j<3; j++)
{
if(a[k]<a[j]) k=j;
}
t=a[i]; a[i]=a[k]; a[k]=t;
}
for(i=0; i<3; i++)
printf("%d\t", a[i]);
}
第5个回答  2011-06-26
#include<stdio.h>
#include<string.h>

void sort(int a[],int n)
{
int i=0,j=0,k=0,temp=0;
for(i=0;i<n;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[j]<a[k])
k=j;
temp=a[i];
a[i]=a[k];
a[k]=temp;
}

}
void main()
{
int a[10];
int n,i;
printf("你需要输入数的个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,n);
for(i=n-1;i>=0;i--)
printf("%2d",a[i]);
printf("\n");
}
这个是一个比较通常的排序,数全部存放在数组中,希望能通过
相似回答