题目描述
有一群猫猫,每只猫都有自己的名称和体重。
用类来描述猫,名称和体重都是私有属性,要求加入属性的get方法。其他函数根据需要自己定义
创建一个动态的猫对象数组,存储各只猫的名称和体重
根据猫的体重对数组做升序排序,并输出排序后每只猫的名称
题目涉及的数值均用整数处理
输入
第一行输入n表示有n只猫
第二行输入一只猫的名称和体重,名称的最大长度为30
依次输入n行
输出
输出一行,输出排序后的猫的名称
样例查看模式
正常显示查看格式
输入样例1 <-复制
输出样例1
#include<iostream>
using namespace std;
class cat
{
private:
char name[30];
int weight;
public:
cat(){}
cat(char* name, int weight)
{
int len = strlen(name);
for (int i = 0; i < len; i++)
{
this->name[i] = name[i];
}
this->name[len] = '\0';
this->weight = weight;
}
void setname(char *name)
{
int len = strlen(name);
for (int i = 0; i < len; i++)
{
this->name[i] = name[i];
}
this->name[len] = '\0';
}
void setweight(int weight)
{
this->weight = weight;
}
int getweight()
{
return weight;
}
void getname()
{
int len = strlen(name);
for (int i = 0; i < len; i++)
{
cout << name[i];
}
}
};
int main()
{
int t;
cin >> t;
cat* c = new cat[t];
char name[30];
int weight;
for (int i = 0; i < t; i++)
{
cin >> name;
cin >> weight;
c[i].setname(name);
c[i].setweight(weight);
}
cat temp;
for (int i = 0; i < t; i++)
{
for (int j = i + 1; j < t; j++)
{
if (c[i].getweight() > c[j].getweight())
{
temp = c[i];
c[i] = c[j];
c[j] = temp;
}
}
}
//根据猫的体重对数组做升序排序,并输出排序后每只猫的名称
for (int i = 0; i < t-1; i++)
{
c[i].getname();
cout << " ";
}
c[t - 1].getname();
return 0;
}