admin管理员组文章数量:1794759
C语言入门——如何比较n个数字的大小?
C语言入门——如何比较n个数字的大小? 一、案例:比较三个数字大小(从小到大)
这个案例是大部分C语言初学者经常面对的问题,相信大家都比较熟悉。假设我们输入三个数字a, b, c,将这三个数字从小到大排序,我们可以通过以下代码来实现: 比较三个数字的大小:
#include<stdio.h> 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<stdio.h> int main(){ int a[100^10]; int i; int j=0; int cnt=0; int tmp; char flag='a'; for(i=0;i<100^10&&flag!='\\n';i++){ scanf("%d",&a[i]); flag=getchar(); j++; }//连续输入一组数据直至换行回车 while(cnt<j){ for(i=cnt;i<j;i++){ if(a[cnt]>a[i]){ tmp=a[cnt]; a[cnt]=a[i]; a[i]=tmp; } } cnt++; } for(i=0;i<j;i++){ printf("%d\\t",a[i]); } return 0; }由于我们需要输入n个数字,倘若定义n个变量来储存数值的话,程序会变得尤为冗杂且不具备普遍性。因此,我们需要通过数组来获得一系列输入数据。 在输入结束后,程序首先读取数组的第一项(i=cnt=0),然后通过for循环将首项与其他所有项两两分组比较,按照与案例相同的方法交换数值,使得前一项总是比后一项小。 当完成首项的比较后,再通过while语句读取第二项、第三项、第四项…进行比较,直到所有的数据全部排列在恰当的位置,最后遍历数组输出结果。
版权声明:本文标题:C语言入门——如何比较n个数字的大小? 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686650973a90662.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论