首页 > 代码库 > 比较2
比较2
题目:给你三个数,请你按绝对值从小到大排序,对于绝对值相同的,请再 按照值由小到大排序
- #include<stdio.h>
- #include<math.h>
- void swap(int &x,int &y){ //重点在于swap 的运用
- int t=x;x=y;y=t;
- }
- int main(){
- int a[3];
- scanf("%d %d %d",&a[0],&a[1],&a[2]);
- for (int i=0;i<=2;++i){ //之所以用循环是为了减小代码量 类似于起泡法 a[0]与a[1],a[2]先比 然后 a[1 ]再与a[2]比
- for (int j=i+1;j<=2;++j){ 掌握起泡法 一个个比较下去,起到排序作用
- if (fabs(a[j])<=fabs(a[i])){
- if(fabs(a[j])==fabs(a[i])){ //在绝对值相等的情况下考虑 原值
- if (a[j]<a[i]) swap(a[i],a[j]);
- }else swap(a[j],a[i]);
- };
- ///看似少了一个else ,其实没差 else所代表的条件就是我们所需要的排序 因为我们为的是排序
- };
- };
- printf("%d %d %d",a[0],a[1],a[2]);
- return 0;
- }
本题在于寻找主次,先对绝对值大小排序很明显是主,如果出现绝对值大小相等这一特殊情况再讨论就是了
比较2
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。