首页 > 其他 > 详细

T1-10

时间:2019-09-18 09:14:00      阅读:68      评论:0      收藏:0      [点我收藏+]
技术分享图片
#include<bits/stdc++.h>
using namespace std;
const int N=105;
struct book
{
    string isbn;
    string name;
    double price;
}b[N],r[N];
int tot=0;
inline void input()
{
    /*while(cin>>b[tot].isbn>>b[tot].name>>b[tot].price)
    {
        if(b[tot].isbn=="0"&&b[tot].name=="0"&&b[tot].price==0)break;
        tot++;
    }*////T1-3
    /*cin>>tot;
    for(int i=0;i<tot;++i)
    {
        cin>>b[i].isbn>>b[i].name>>b[i].price;
    }*////T4-9
}
inline void output()
{
    /*cout<<tot<<endl;*////T1
    for(int i=0;i<tot;++i)
    {
        cout<<b[i].isbn<<" "<<b[i].name<<" "<<b[i].price<<endl;
    }
}
inline void bubblesort()
{
    for(int i=0;i<tot;++i)
    {
        for(int j=0;j<tot-i-1;++j)
        {
            if(b[j].price<b[j+1].price)
            {
                book t=b[j];
                b[j]=b[j+1];
                b[j+1]=t;
            }
        }
    }
}
inline void mergesort(int s,int t)//归并排序
{
    if(s==t)return;
    int m=s+(t-s)/2;
    mergesort(s,m);
    mergesort(m+1,t);
    int i=s,j=m+1,k=s;
    while(i<=m&&j<=t)r[k++]=b[i].price>=b[j].price?b[i++]:b[j++];
    while(i<=m)r[k++]=b[i++];
    while(j<=t)r[k++]=b[j++];
    for(int i=s;i<=t;++i)b[i]=r[i];
}
inline void update()
{
    double sum=0;
    for(int i=0;i<tot;++i)sum+=b[i].price;
    sum/=tot;
    cout<<sum<<endl;
    for(int i=0;i<tot;++i)b[i].price*=b[i].price<sum?1.2:1.1;
}
inline void inverse()
{
    for(int i=0;i<tot/2;++i)
    {
        int j=tot-i-1;
        book t=b[j];
        b[j]=b[i];
        b[i]=t;
    }
}
inline void findmax()
{
    double mmax=0;
    int num=0;
    for(int i=0;i<tot;++i)
    {
        if(mmax==b[i].price)num++;
        if(mmax<b[i].price)
        {
            mmax=b[i].price;
            num=1;
        }
    }
    cout<<num<<endl;
    for(int i=0;i<tot;++i)
    {
        if(b[i].price==mmax)
        {
            cout<<b[i].isbn<<" "<<b[i].name<<" "<<b[i].price<<endl;
        }
    }
}
inline void findlove()
{
    int n;
    cin>>n;
    for(int j=0;j<n;++j)
    {
        string name;
        cin>>name;
        int num=0;
        for(int i=0;i<tot;++i)
        {
            if(b[i].name==name)num++;
        }
        if(num==0)
        {
            cout<<"Sorry,there is no your favourite!"<<endl;
        }
        else
        {
            cout<<num<<endl;
            for(int i=0;i<tot;++i)
            {
                if(b[i].name==name)
                {
                    cout<<b[i].isbn<<" "<<b[i].name<<" "<<b[i].price<<endl;
                }
            }
        }
    }
}
inline void query()
{
    int n;
    cin>>n;
    for(int j=0;j<n;++j)
    {
        int t;
        cin>>t;
        if(t<1||t>tot)
        {
            cout<<"Sorry,the book on the best position doesn‘t exist!"<<endl;
        }
        else
        {
            t--;
            cout<<b[t].isbn<<" "<<b[t].name<<" "<<b[t].price<<endl;
        }
    }
}
inline void insertbook()
{
    int pos;
    cin>>pos;
    string isbn;
    string name;
    double price;
    cin>>isbn>>name>>price;
    if(pos<1||pos>tot+1)
    {
        cout<<"Sorry,the position to be inserted is invalid!"<<endl;
    }
    else
    {
        pos--;
        for(int i=tot;i>=pos;--i)
        {
            b[i]=b[i-1];
        }
        b[pos].isbn=isbn;
        b[pos].name=name;
        b[pos].price=price;
        tot++;
        output();
    }
}
inline void deletebook()
{
    int pos;
    cin>>pos;
    if(pos<1||pos>tot)
    {
        cout<<"Sorry,the position to be deleted is invalid!"<<endl;
    }
    else
    {
        pos--;
        tot--;
        for(int i=pos;i<tot;++i)b[i]=b[i+1];
        output();
    }
}
inline void repeatdelete()
{
    cin>>tot;
    for(int i=0;i<tot;++i)
    {
        cin>>b[i].isbn>>b[i].name>>b[i].price;
        for(int j=0;j<i;++j)
        {
            if(b[i].isbn==b[j].isbn)
            {
                i--;
                tot--;
                break;
            }
        }
    }
    cout<<tot<<endl;
    output();
}
int main()
{
    cout<<fixed<<setprecision(2);
    /*input();*////T1-9
    /*bubblesort();*////T2
    /*mergesort(0,tot-1);*////T2,两种排序都行
    /*update();*////T3
    /*inverse();*////T4
    /*output();*////T1-4
    /*findmax();*////T5
    /*findlove();*////T6
    /*query();*////T7
    /*insertbook();*////T8
    /*deletebook();*////T9
    /*repeatdelete();*////T10
}
View Code

已全部编译通过,有不足请指点。

T1-10

原文:https://www.cnblogs.com/yoududezongzi/p/11536598.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!