• 2020 HDOJ 绝对值排序


    • 以下是题目及输入输出格式要求:

    • 解题思路:
    该题目即要求按照输入序列的绝对值大小从大到小进行排列。我采用了sort()函数对序列进行该类排序,即可得到结果。
    • 解决代码:
    #include<iostream>
    #include<algorithm>
    #include<stdlib.h> 
    using namespace std;
    
    bool cmp(int x,int y)
    {
          return abs(x)>abs(y);
    }
    
    int main()
    {
        int n;
        while(cin>>n)
        {
         if(n==0)
           break;
         int a[100];
         for(int i=0;i<n;i++) //初始赋值 
         {
          cin>>a[i];    
         }
         
         sort(a,a+n,cmp);     //排序 
         for(int i=0;i<n;i++)
         {
             if(i==n-1)
                 cout<<a[i];
            else
                cout<<a[i]<<" ";
         }
         cout<<endl;
        }//end while
        return 0;
    }
    View Code
    •  解题心得:
      接着本题对C++的sort()函数进行了学习,其中自己编写cmp函数来满足按照按绝对值降序排列的要求。一开始编写的是这样的:
      bool cmp(int x,int y)
      {
        if(abs(x)>abs(y))
               return x>y;
      }
      发现不对,还是对于cmp()运用的不对,返回的即为要比较的标准,改为下面的cmp()函数即可:
      
      bool cmp(int x,int y)
      {
            return abs(x)>abs(y);
      }
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    HashMap的理解
    红黑树
    No constructor found matching
    会话 控制终端 setsid
    信息表示和处理 from computer system chapter 2
    tcp keepalive
    TCP 四步挥手
    CS 课程
    close vs shutdown socket
    Linux time总结
  • 原文地址:https://www.cnblogs.com/ManbaDF99/p/12300441.html
Copyright © 2020-2023  润新知