06-D. 最胖的加菲(类与对象+数组)

06-构造与析构-

题目描述
有一群猫猫,每只猫都有自己的名称和体重。
用类来描述猫,名称和体重都是私有属性,要求加入属性的get方法。其他函数根据需要自己定义
创建一个动态的猫对象数组,存储各只猫的名称和体重
根据猫的体重对数组做升序排序,并输出排序后每只猫的名称
题目涉及的数值均用整数处理

输入
第一行输入n表示有n只猫
第二行输入一只猫的名称和体重
依次输入n行

输出
输出一行,输出排序后的猫的名称

输入样例
4
巧克力胖三斤 1500
自来水瘦八两 400
芝士蛋糕肥六斤 3000
蔬菜沙拉轻四两 200

蔬菜沙拉轻四两 自来水瘦八两 巧克力胖三斤 芝士蛋糕肥六斤

#include <iostream>
using namespace std;

class cat
{
    string name;
    int weight;
public:
    cat()
    {name="noname";weight=0;}
    cat(string n,int w)
    {name=n;weight=w;}
    void setname(string n)
    {name=n;}
    void setweight(int w)
    {weight=w;}
    string getname()
    {return name;}
    int getweight()
    {return weight;}
};

int main()
{
    int t,i,w;
    string n;
    cat c[100];
    cin>>t;
    for(i=0;i<t;i++)
    {
        cin>>n>>w;
        c[i].setname(n);c[i].setweight(w);
    }
    
    int j,temp;
    string temp1;
    for(i=0;i<t-1;i++)//冒泡排序 名字和体重要同时变
        for(j=0;j<t-i-1;j++)
            if(c[j].getweight()>c[j+1].getweight())
            {
                temp=c[j+1].getweight();
                c[j+1].setweight(c[j].getweight());
                c[j].setweight(temp);
                
                temp1=c[j+1].getname();
                c[j+1].setname(c[j].getname());
                c[j].setname(temp1);
            }
    
    for(i=0;i<t;i++)
        cout<<c[i].getname()<<" ";
    cout<<endl;
    
    return 0;
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值