|
发表于 2024-3-26 20:40:38
|
显示全部楼层
可以使用结构体来解决这个问题。首先,定义一个结构体,包含数字和它的排名两个成员变量。
- #include <iostream>
- #include <algorithm> // 使用sort函数需要包含这个头文件
- using namespace std;
- struct Number {
- int value; // 数字的值
- int rank; // 数字的排名
- };
- bool compare(Number a, Number b) {
- return a.value > b.value; // 按照数字的值降序排列
- }
- int main() {
- int n;
- cin >> n;
- Number nums[n];
- for (int i = 0; i < n; i++) {
- cin >> nums[i].value;
- nums[i].rank = i + 1; // 初始化数字的排名为输入顺序
- }
- sort(nums, nums + n, compare); // 使用sort函数按照数字的值降序排列
- for (int i = 0; i < n; i++) {
- cout << nums[i].rank << " ";
- }
- cout << endl;
- return 0;
- }
复制代码
在上面的代码中,我们首先定义了一个结构体`Number`,包含两个成员变量`value`和`rank`,分别表示数字的值和排名。
然后我们使用一个循环读取输入的数字,并初始化每个数字的排名为输入顺序。
接下来,我们使用`sort`函数将数字按照值的大小降序排列。
最后,我们输出每个数字的排名。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|