第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");
}
这个是一个比较通常的排序,数全部存放在数组中,希望能通过