主 题: |
|
C语言中四个数比较大小问题 |
作 者: |
|
atrsn (ziyu ) |
等 级: |
|
|
信 誉 值: |
|
100 |
所属论坛: |
|
C/C++ C语言 |
问题点数: |
|
20 |
回复次数: |
|
25 |
发表时间: |
|
2005-7-23 23:39:37 |
|
|
|
|
|
|
|
输入四个数,按从小到大顺序输出。只用判断语句实现。不知各位大侠是否有经典的算法。
| |
|
|
回复人:llf_hust() ( ) 信誉:100 |
2005-7-23 23:44:40 |
得分:0 |
|
|
|
#include<stdio.h> 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 |
|
|
回复人:zsd1101897(曼陀罗) ( ) 信誉:100 |
2005-7-23 23:47:30 |
得分:0 |
|
|
|
#include <stdio.h>
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 |
|
|
回复人:zsd1101897(曼陀罗) ( ) 信誉:100 |
2005-7-24 0:06:20 |
得分:0 |
|
|
|
冒泡法: #include <stdio.h> 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]<a[j]) { t=a[i]; a[i]=a[j]; a[j]=t } } } }
| |
Top |
|
|
回复人:llf_hust() ( ) 信誉:100 |
2005-7-24 0:17:53 |
得分:0 |
|
|
|
#include<stdio.h> void SelectSort(int a[],int n) { int i,j,tmp,temp; for(i=0; i<n-1; i++) {tmp = i; for(j = i+1; j<n;j++) if (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 |
|
|
回复人:aweto(冬虫夏草) ( ) 信誉:100 |
2005-7-24 2:30:05 |
得分:0 |
|
|
|
选择了数组这个经典数据结构,C排序算法就多如牛毛了。 :)
| |
Top |
|
|
回复人:jixingzhong(瞌睡虫) ( ) 信誉:100 |
2005-7-24 8:42:49 |
得分:0 |
|
|
|
如果只是输出四个中的最大值
到是有一些巧妙的方法。
可是要全部顺序输出的话....................
就比较困难了.................
| |
Top |
|
|
回复人:HermeX() ( ) 信誉:100 |
2005-7-24 11:24:31 |
得分:0 |
|
|
|
只有4个数的话,用什么排序差别都不大。 如果数的个数很多的话,当然使用最强捍的快速排序,虽然稳定性不太好。
| |
Top |
|
|
回复人:windking21(暗淡) ( ) 信誉:100 |
2005-7-25 10:54:48 |
得分:0 |
|
|
|
排序应该是最简单的
#include <iostream.h> void main() { int i,j,x,y,a[4]; for(i=0;i<4;i++) { cout<<"enter number:"<<endl; 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="<<a[0]<<endl;
}
| |
Top |
|
|
回复人:newpuple(开始新的学程) ( ) 信誉:100 |
2005-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<b) {temp=a; a=b; b=temp; } if(c<d) {temp=c; c=d; d=temp; } if(a<c) {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 |
|
|
回复人:kernelxu(残眉) ( ) 信誉:100 |
2005-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 <stdio.h>
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 |
|
|
回复人:ENOUGH_XU(足球小兵) ( ) 信誉:100 |
2005-07-25 15:56:00 |
得分:0 |
|
|
|
#include <iostream.h> 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<<max<<endl; return 0;
} 随便搞了一个,也不知道算不算经典. | |
Top |
|
|
回复人:xsm(程序) ( ) 信誉:100 |
2005-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]); } | |
|