水野朝阳所有番号封面:c语言中四个数比较大小问题

来源:百度文库 编辑:偶看新闻 时间:2024/06/11 20:08:02
主  题:C语言中四个数比较大小问题
作  者:atrsn (ziyu )
等  级:
信 誉 值:100
所属论坛:C/C++ C语言
问题点数:20
回复次数:25
发表时间:2005-7-23 23:39:37
输入四个数,按从小到大顺序输出。只用判断语句实现。不知各位大侠是否有经典的算法。
回复人:llf_hust() () 信誉:1002005-7-23 23:44:40得分:0
#include
int Max(int a,int b)
{
if(a>b)
return a;
return b;
}
int main()
{
int t,a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
t = Max(Max(Max(a,b),c),d);
printf("max = %d",t);
return 0;
}
Top
回复人:llf_hust() () 信誉:1002005-7-23 23:45:18得分:0
看错题目 了不好意思
Top
回复人:zsd1101897(曼陀罗) () 信誉:1002005-7-23 23:47:30得分:0
#include
main()
{
int a, b, c, d, t;
printf("请输入4个数:");
scanf("%d%d%d%d", &a, &b, &c, &d);
if (a>b)
{
t=a; a=b; b=t;
}
if (a>c)
{
t=a; a=c; c=t;
}
if (a>d)
{
t=a; a=d; d=t;
}
if (b>c)
{
t=b; b=c; c=t;
}
if (b>d)
{
t=b; b=d; d=t;
}
if (c>d)
{
t=c; c=d; d=t;
}
printf("排序结果:%d %d %d %d", a, b, c, d);
}
不知道这算不算经典啊?
Top
回复人:stoneagecr(stoneagecr) () 信誉:1002005-7-23 23:52:59得分:0
冒泡排序 两个for循环即可
Top
回复人:atrsn(ziyu ) () 信誉:1002005-7-23 23:57:16得分:0
不错简单明了。
Top
回复人:llf_hust() () 信誉:1002005-7-24 0:00:19得分:0
直接排序就可以得出结果
Top
回复人:zsd1101897(曼陀罗) () 信誉:1002005-7-24 0:06:20得分:0
冒泡法:
#include
main()
{
int a[4];
int i;
int j;
int t;
printf("请输入4个数:\n");
for(i=0;i<4;i++)
{
sacnf("%d", &a[i]);
}
for(i=0; i<4; i++)
{
for(j=1;j<4-i;j++)
{
if(a[i]{
t=a[i]; a[i]=a[j]; a[j]=t
}
}
}
}
Top
回复人:llf_hust() () 信誉:1002005-7-24 0:17:53得分:0
#include
void SelectSort(int a[],int n)
{
int i,j,tmp,temp;
for(i=0; i{tmp = i;
for(j = i+1; jif (a[tmp] > a[j])
tmp = j;
if(tmp != i)
{
temp = a[i];
a[i] = a[tmp];
a[tmp] = temp;
}
}
}
int main()
{
int a[5];
int i;
for(i=0; i<4; i++)
scanf("%d",&a[i]);
SelectSort(a,4);
for(i=0; i<4; i++)
printf("%d",a[i]);
return 0;
}
选择排序法
Top
回复人:MagicCarmack(梦中情人C++) () 信誉:1002005-7-24 1:03:34得分:0
这些算法算经典么?
期待高人出招
Top
回复人:aweto(冬虫夏草) () 信誉:1002005-7-24 2:30:05得分:0
选择了数组这个经典数据结构,C排序算法就多如牛毛了。 :)
Top
回复人:jixingzhong(瞌睡虫) () 信誉:1002005-7-24 8:42:49得分:0
如果只是输出四个中的最大值
到是有一些巧妙的方法。
可是要全部顺序输出的话....................
就比较困难了.................
Top
回复人:mic_c(贝壳撼木) () 信誉:1002005-7-24 11:19:26得分:0
UP
Top
回复人:HermeX() () 信誉:1002005-7-24 11:24:31得分:0
只有4个数的话,用什么排序差别都不大。
如果数的个数很多的话,当然使用最强捍的快速排序,虽然稳定性不太好。
Top
回复人:Student02370236(★★★★★★) () 信誉:1002005-7-25 3:02:36得分:0
如果你的数据量不太大的话就用递归吧...
Top
回复人:jlkzzh(一阵风) () 信誉:1002005-7-25 10:21:59得分:0
冒泡法 is perfect
Top
回复人:windking21(暗淡) () 信誉:1002005-7-25 10:54:48得分:0
排序应该是最简单的
#include
void main()
{ int i,j,x,y,a[4];
for(i=0;i<4;i++)
{
cout<<"enter number:"<cin>>x;
a[i]=x;
}
for(i=0;i<4;i++)
{
for(j=i+1;j<4;j++)
if(a[i]>a[j])
{
y=a[i];
a[i]=a[j];
a[j]=y;
}
}
cout<<"min="<}
Top
回复人:newpuple(开始新的学程) () 信誉:1002005-07-25 11:23:00得分:0
我来试试。
main()
{int a,b,c,d,temp;
printf("please input four numbers:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a{temp=a;
a=b;
b=temp;
}
if(c{temp=c;
c=d;
d=temp;
}
if(a{temp=c;
c=a;
a=temp;
}
else if(c>b)
{temp=b;
b=c;
c=temp;
}
printf("%5d,%5d,%5d,%5d",a,b,c,d);
}
Top
回复人:shmilvy() () 信誉:1002005-07-25 12:20:00得分:0
#include"stdio.h"用for循环
Top
回复人:kernelxu(残眉) () 信誉:1002005-07-25 15:25:00得分:0
数较少,用简单冒泡法即可:
/*
Name : bubble_sort.c
Copyright : kernelxu
Author : kernelxu
Date : 2005-07-25 15:18
Description: displaying 4 int data in order from the biggest to the smallest
using bubble sort method
*/
#include
int main(void)
{
int num[4] = {0};
int t = 0;
int i = 0;
int j = 0;
printf("Please enter 4 int datas:\n");
for(i = 0; i < 4; i++)
{
printf("Enter %d: ", i+1);
scanf("%d", &(num[i]));
}
for(i = 0; i<3; i++)
{
for(j = i+1; j < 4; j++)
{
if(num[i] > num[j])
{
t = num[i];
num[i] = num[j];
num[j] = t;
}
}
}
for(i = 0; i < 4; i++)
{
printf("%d\t", num[i]);
}
printf("\n");
system("pause");
return 0;
}
Top
回复人:guycs(年轻人) () 信誉:1002005-07-25 15:26:00得分:0
这似乎没什么太大意义吧?
Top
回复人:ENOUGH_XU(足球小兵) () 信誉:1002005-07-25 15:56:00得分:0
#include
int main()
{
int a,b,c,d,max;
cin>>a>>b>>c>>d;
max=((a>b?a:b)>c?(a>b?a:b):c)>d?((a>b?a:b)>c?(a>b?a:b):c):d;
cout<return 0;
}
随便搞了一个,也不知道算不算经典.
Top
回复人:zzffrr(zzffrr) () 信誉:1002005-07-25 16:26:00得分:0
快速排序,数据结构算法里有。
Top
回复人:ENOUGH_XU(足球小兵) () 信誉:1002005-07-25 16:37:00得分:0
看错了,不好意思!!!
Top
回复人:mic_c(贝壳撼木) () 信誉:1002005-07-25 20:39:00得分:0
能不能用DO WHILE 语句啊?
Top
回复人:xsm(程序) () 信誉:1002005-07-26 19:56:00得分:0
main()
{
int a[4],i,j,s;
for(i=0;i<4;i++)
scanf("%d",&a[i]); /*输入四个数*/
for(i=0;i<3;i++){
for(j=i+1;j<4;j++){
if(a[i]>a[j]){
s=a[i];a[i]=a[j];a[j]=s;}
}
}
for(i=0;i<4;i++)
printf("%d",a[i]);
}