文章
16
粉丝
66
获赞
4
访问
9.1k
N诺的编辑器太难用,格式会很乱,我的博客有这篇题解更友好的排版,欢迎点击链接查看。
【博客链接】
## 分析
一开始打算用二维的字符数组来操作,但是数组指针玩不太明白,于是改用结构体,结构体country里面仅一个成员name(字符数组),这样就有两种解题方法:
### 方法一:使用sort排序
- 创建一个country数组cry,大小为101(因为n最大为100)
- 输入的国家名称放到country数组cry元素对应的name属性里面
- 使用sort对country数组cry进行排序,注意,传入的三个参数如下,分别为country数组的首指针、尾后指针和排序函数名cmp
```c++
sort(&cry[0], &cry[n], cmp);
```
- 关于cmp函数的编写,是基于sort函数的特性,即两个待排的元素a,b,注意a和b都是country类型的,
- 如果cmp(a,b)的值是true则不交换顺序,如果是false则交换顺序,
- 再基于本题的要求,按照strcmp(a.name,b.name)判断字符串的大小即可,
- 如果a.name的字母序数大于b.name,那么strcmp(a.name,b.name)值为正数
- 如果a.name的字母序数小于或等于b.name,那么strcmp(a.name,b.name)值为负数或0
- 那么,就应该在a.name的字母序数小于或等于b.name的时候,让cmp函数返回true,表示不用交换,否则就要交换。
#### 方法一::使用sort排序(代码)
```cpp
#include <cstdio>
#include <queue>
#include <cmath>
#include <cstring>
#include ...
登录后发布评论
暂无评论,来抢沙发