C++编程题,要求使用STL容器

寻天荒 2020-06-01 08:54:36
100个学生围一圈循环报数,遇9退出,问学生的出圈顺序
...全文
179 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-06
  • 打赏
  • 举报
回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
qybao 2020-06-04
  • 打赏
  • 举报
回复
for example

#include <iostream>
#include <list>
using namespace std;
int main(int argc, const char * argv[]) {
int cnt = 0, tmp;
list<int> l; //用list保存学生编号
for (int i=0; i<100; i++) {
l.push_back(i+1);
}
while (l.size()>0) { //如果学生圈里还有人则一直循环游戏
tmp = l.front(); //获得排在list的开头的学生编号
l.pop_front();//排在list的开头的学生站出来
cnt++; //报数
if (cnt%10==9 || cnt%100>=90 || cnt%1000>=900) { //如果报数中个十百位任意一位有9则站出来的学生从队列中则出局
printf("报数:%d,出局编号:%d\n", cnt, tmp);
} else {
l.push_back(tmp); //否则站出来的学生继续排在队列的最后
}
}
return 0;
}
pearling 2020-06-04
  • 打赏
  • 举报
回复
用list,将1到100依次insert进list中,然后模拟报数,到9,19,29.....的元素移除链表,一直这么模拟操作,每移除一个元素就打印一下它的编号即可。难点就是要处理链表成环的情况。

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧