| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 350 人关注过本帖
标题:两个语句 不明白 return c1!=c2?c1<c2:c1<c2; cin.clear();
只看楼主 加入收藏
woshiyexinji
Rank: 2
等 级:论坛游民
帖 子:17
专家分:26
注 册:2012-2-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
两个语句 不明白 return c1!=c2?c1<c2:c1<c2; cin.clear();
  return c1!=c2?c1<c2:c1<c2;
  cin.clear();
//这两个什么意思

#include <iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;

bool comp(const string &s1,const string &s2)
{
    int i,j,k,m,n;
    int c1=0,c2=0;
    for(i=0;i<s1.size();i++)
    {
        for(j=i+1;j<s1.size();j++)
        {
            if(s1[i]>s1[j])
            c1++;
        }
    }
    for(i=0;i<s2.size();i++)
    {
        for(j=i+1;j<s2.size();j++)
        {
            if(s2[i]>s2[j])
              c2++;
        }
    }
    return c1!=c2?c1<c2:c1<c2;
}
int main()
{
    string s;
    vector<string> v;
    int n,a,b;
    cin>>n;
    int i,j,k;
    int p=0;
    for(i=0;i<n;i++)
    {
        cin.clear();
        cin>>a>>b;
        v.clear();
        p++;
        for(j=0;j<b;j++)
        {
            cin>>s;
            v.push_back(s);
        }
        sort(v.begin(),v.end(),comp);
        if(p!=1)  cout<<endl;
        for(k=0;k<v.size();k++)
        {
            cout<<v[k]<<endl;
        }
    }
    return 0;
}
搜索更多相关主题的帖子: include return 
2012-03-17 13:21
CooperOne
Rank: 2
来 自:珠海
等 级:论坛游民
帖 子:40
专家分:48
注 册:2012-1-25
收藏
得分:10 
return c1!=c2?c1<c2:c1<c2;
这是三目运算符...
就是:
return (c1!=c2)?(c1<c2):(c1<c2);
先判断第一个括号里面是否为真,真的话返回第二个括号,假返回第一个括号

具体流程是这样的
先判断c1和c2是否相等
假如不相等的话
   再判断c1是否小于c2,是的话返回true,c1大于c2返回false
假如相等的话
   判断c1<c2是否成立(废话肯定不成立了),如果不成立返回false

综上所述
假如这个函数返回true的话,说明c1<c2;返回false的话说明c1>=c2;

(其实第二个括号里面直接写0不就行了么...)

蹲得越低,跳得越高.
2012-03-17 15:50
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:10 
return c1!=c2?c1<c2:c1<c2;
如果c1的值不等于c2,则返回c1小于c2的比较结果,否则返回c1小于c2的比较结果。这里只要c1不等于c2都会返回c1小于c2的比较结果,这样写有什么意思呢?
cin.clear();
清除标准输入流中的错误。

My life is brilliant
2012-03-17 15:52
快速回复:两个语句 不明白 return c1!=c2?c1<c2:c1<c2; cin.clear();
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040933 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved