题解
2023-07-20 18:56:34
发布于:上海
44阅读
0回复
0点赞
超级通俗的题解
1.把人数存入变量,因为人数是整数,题目有约束,所以使用int即可
2.定义数组a,下标为该位置的人的编号,值为该位置前面的人的编号,下标从1开始
3.把输入的内容存入数组
4.定义临时变量cnt,记录编号,初始值设为0,因为0的意思是这个位置的人就是第一个,没有比他更前面的
5.定义数组b,按照排序后的顺序存入
6.遍历数组a,如果数组a的值等于cnt的值,把a的下标存入b,cnt赋值为a的下标
7.遍历数组b,输出
调整顺序后得出的代码如下(仅供参考)
相信我,这不是完整代码[狗头]
#include <bits/stdc++.h>
using namespace std;
int a[100];
int b[100];
int main(){
int n,cnt = 0,bn = 0;
cin >> n;
int m = n;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
while (m){
for(int i = 1; i <= n; i++){
if (a[i] == cnt){
b[bn] = i;
bn++;
cnt = i;
m--;
}
}
}
for (int i = 0; i < bn; i++){
cout << b[i] << " ";
}
}
全部评论 2
我有强迫症,请使用链表完成[doge]
2024-08-20 来自 江苏
0雀氏啊缺失,你的return 0;呢(恼)
2023-07-20 来自 上海
0难道你不知道c++没写return 0;程序会自动帮你return吗?我一般都不写(绝对不是因为我懒得写[doge])
2024-08-20 来自 江苏
0
有帮助,赞一个