35 小白鼠排队 北大复试 c++
给定数量的小白鼠数量为N(其中N满足1至100之间的整数)。每一只小白鼠都戴着一顶颜色各异或相同的帽子。我们记录下每只小白鼠的重量数据,并要求按重量从高到低排列后输出各小白鼠头上的帽子颜色信息。具体来说,这些颜色由预定义的一组字符串如'red'、'blue'等来代表。值得注意的是,在实验中不同小白鼠可能佩戴相同颜色的帽子。
输入描述:
每个案例的输入由N行数据组成。其中第一个数字为整数N,在接下来是N个白鼠的信息块中。每条记录代表一只白鼠的信息:第一个数值为不超过100的正整数(表示白鼠重量),第二个字段是字符串(表示白鼠帽子颜色),其长度不超过10个字符。
注意:白鼠的重量各不相同。
输出描述:
每个案例按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。
示例1
输入
3
30 red
50 blue
40 green
输出
blue
green
red
题解
仍沿sort思路展开。
接下需建立mouse结构体。
该结构体内含整型属性体重及字符属性颜色。
基于降序原则建立比较函数bool cmp。
具体操作分为以下三个步骤:
第一阶段:通过for循环收集数据;
第二阶段:执行排序过程;
第三阶段:最后通过for循环输出结果。
c++11
包含
.c 的标准库函数声明文档
.c 的标准库函数声明文档
.c 的标准库函数声明文档
.c 的标准库函数声明文档
.c 的标准库函数声明文档
.c 的标准库函数声明文档
.c 的标准库函数声明文档
.c 的标准库函数声明文档
.c 的标准库函数声明文档
std:: namespace std;
struct mouse{
int weight;
char color[11];
}m[101];
bool cmp(mouse a,mouse b){
return a.weight>b.weight;//体重降序规则
该程序为一个简单的C语言主函数示例。其主要功能如下:
int main() {
// 根据预处理指令判断是否为在线评测环境
#ifdef ONLINE_JUDGE
// 如果不在线评测模式,则打开输入文件并进行读取操作
#else
// 打开输入文件并进行读取操作
freopen("1.txt", "r", stdin);
// 在同一个目录下创建相应的输入文件以供程序运行使用
// 这样可以在运行时无需额外输入即可完成程序执行过程
#endif
}
int n;
while (std::cin >> n) {
for (int i = 0; i < n; ++i) {
std::cin >> m[i].weight >> m[i].color;
}
std::sort(m, m + n, cmp); // 按降序排列
for (int i = 0; i < n; ++i) {
std::cout << m[i].color << std::endl;
}
}
}
return 0;
}
感想
请确保在句尾使用分号点;在题目中指出第一个变量不大于等于100是一个正整数,并用来表示小鼠的体重;因此m_{\text{weight}} = 101;第二个字段是字符串类型,并用来表示小鼠的颜色代码;其中\text{color}_{\text{max}}的最大长度限制为255
