当前位置:编程学习 > C/C++ >>

ZOJ 2727List the Books

[cpp] 
#include<fstream> 
#include<iostream> 
#include<vector> 
#include<algorithm> 
#include<string> 
using namespace std; 
struct Book 

    string Name; 
    int Year; 
    int Price; 
}; 
 
bool CompName(const Book &b1,const Book &b2) 

    if(b1.Name!=b2.Name) 
        return b1.Name<b2.Name; 
    else if(b1.Year!=b2.Year) 
        return b1.Year<b2.Year; 
    else 
        return b1.Price<b2.Price; 

bool CompYear(const Book &b1,const Book &b2) 

    if(b1.Year!=b2.Year) 
        return b1.Year<b2.Year; 
    else if(b1.Name!=b2.Name) 
        return b1.Name<b2.Name; 
    else 
        return b1.Price<b2.Price; 

bool CompPrice(const Book &b1,const Book &b2) 

    if(b1.Price!=b2.Price) 
        return b1.Price<b2.Price; 
    else if(b1.Name!=b2.Name) 
        return b1.Name<b2.Name; 
    else 
        return b1.Year<b2.Year; 

int main() 

    //ifstream cin("acmilan.txt"); 
    vector<Book> v; 
    Book book; 
    string sorting; 
    int n; 
    int i; 
    int line=0; 
    while(cin>>n) 
    { 
        if(n==0) 
            break; 
        line++; 
        v.clear(); 
        for(i=0;i<n;i++) 
        { 
            cin>>book.Name>>book.Year>>book.Price; 
            v.push_back(book); 
        } 
        cin>>sorting; 
        if(sorting=="Name") 
            sort(v.begin(),v.end(),CompName); 
        else if(sorting=="Year") 
            sort(v.begin(),v.end(),CompYear); 
        else if(sorting=="Price") 
            sort(v.begin(),v.end(),CompPrice); 
        if(line!=1) 
            cout<<endl; 
        for(i=0;i<v.size();i++) 
        { 
            cout<<v[i].Name<<" "<<v[i].Year<<" "<<v[i].Price<<endl; 
        } 
             
    } 
    //system("pause"); 
    return 0; 

作者:teibin
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,