C语言入门——如何比较n个数字的大小?
一、案例:比较三个数字大小(从小到大)
这个案例是大部分C语言初学者经常面对的问题,相信大家都比较熟悉。假设我们输入三个数字a, b, c,将这三个数字从小到大排序,我们可以通过以下代码来实现: 比较三个数字的大小:
#include
int main(){
int a,b,c;
int tmp;
scanf("%d%d%d",&a,&b,&c);
if(a>b){
tmp=a;
a=b;
b=tmp;
}
if(a>c){
tmp=a;
a=c;
c=tmp;
}
if(b>c){
tmp=b;
b=c;
c=tmp;
}
printf("%d %d %d",a,b,c);
return 0;
}
我们不难发现,这段代码的思路是将 a,b;a,c;b,c分成三组数据分别进行比较,然后把较小的数值赋给前一个变量,并将该变量中的值替换出来,交给后一个变量,最后按照顺序依次输出。所以说,比较数值大小归根结底就是三个步骤:
Created with Raphaël 2.2.0
分组
比较
交换
二、推广:比较n个数字的大小(从小到大)
基于三个数大小比较的思路,我们不妨对此加以推广为n个数字的大小比较(一般性),此外,可以运用相类似的思路将数字从大到小排序。 比较n个数字的大小:
#include
int main(){
int a[100^10];
int i;
int j=0;
int cnt=0;
int tmp;
char flag='a';
for(i=0;i |