3个数从大到小排序,用c语言

如题所述

#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(a<c){t=a;a=c;c=t;}
if(b<c){t=b;b=c;c=t;}
printf("%d %d %d\n",a,b,c); //输出排序后的数
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-17
nt a,b,c,t;
printf("请输入三个数");
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;}

if(a<b)
{t=a;a=b,b=t;}
printf("从小到大:%d %d %d",a,b,c);

或者写个函数
int compare(int x,int y,int z)
{
int t;
t=x<y?x:y;
return (t<z?t:z);
}
第2个回答  2012-10-17
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define N 15
void sort();
int a[N];
int main()
{
int i;
srand((unsigned)time(NULL));
for(i = 0; i < N; i++)
{
a[i] = rand()%100 + 1;
printf("%4d", a[i]);
}
printf("\nAfter sorted : \n");
sort();
return 0;
}
void sort()
{
int i,j,s;
for(i=0; i<N-1; i++)
{
for(j=i+1; j<N; j++)
if(a[i] > a[j])
{
s = a[i];
a[i] = a[j];
a[j] = s;
}
}
for(i=0; i<N; i++)
printf("%4d", a[i]);
printf("\n");
}
随机产生N个数,进行冒泡排序本回答被网友采纳
第3个回答  2012-10-17
#include <stdio.h>
int main()
{
int a[3],max,min,tmp;
scanf("%d%d%d",a,a+1,a+2);
max=a[0]>a[1]?a[0]>a[2]?0:2:a[1]>a[2]?1:2;
tmp=a[0];
a[0]=a[max];
a[max]=tmp;
min=a[0]<a[1]?a[0]<a[2]?0:2:a[1]<a[2]?1:2;
tmp=a[2];
a[2]=a[min];
a[min]=tmp;
printf("%d %d %d",a[0],a[1],a[2]);
return 0;
}
第4个回答  2012-10-17
#include <stdio.h>
#define MAX 3
#define SWAP(x,y) {int t;t = x;x = y;y = t;}
insert_sort(int a[],int n)
{
int i,j,temp;
for(i = 1;i < n;i++){
temp = a[i];
for(j = i -1;j >= 0 && temp > a[j];j--)
a[j+1] = a[j];
a[j+1] = temp;
}
}
void select_sort(int a[],int n)
{
int i,j;
for( i=0; i< n-1; i++)
{
int pos = i;
for( j=i+1; j<n; j++)
{
if (a[j] < a[pos]) pos = j;
}
if(pos!=i)
SWAP(a[pos], a[i]);
}
}
int main(void)
{
int i;
int a[MAX] = {0};
for(i = 0;i<MAX;i++)
scanf("%d",&a[i]);
printf("排序前:");
for(i = 0; i < MAX; i++) {
printf("%d ",a[i]);
}
insert_sort(a,MAX);
//select_sort(a,MAX);
printf("\n排序后:");
for(i = 0; i < MAX; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
相似回答