C语言实现俄罗斯转盘赌小问题,编译数组出错问题解决。
c语言代码原文链接:https://www.cnblogs.com/ciyeer/p/9029098.html
修改参考原文链接:https://www.cnblogs.com/pjCoder/p/5252621.html
出错代码:gambler gamblers[n+1];
编译时,创建新数组 gamblers,由于c语言中不允许非常量成为新建数组时表示大小的下标,即n未知,导致创建失败。
可行的修改办法是:
gambler * gamblers;
gamblers = (gambler *)malloc(sizeof(gambler)*n);
修改后的运行结果:
输入赌徒的人数:5
将赌徒依次编号为1-5
第1轮开始, 从编号为1的人开始,枪在第2次扣动扳机会向
编号为2的赌徒退出赌局,剩余赌徒编号依次为:
1 3 4 5
第2轮开始, 从编号为3的人开始,枪在第3次扣动扳机会向
编号为5的赌徒退出赌局,剩余赌徒编号依次为:
1 3 4
第3轮开始, 从编号为1的人开始,枪在第1次扣动扳机会向
编号为1的赌徒退出赌局,剩余赌徒编号依次为:
3 4
第4轮开始, 从编号为3的人开始,枪在第2次扣动扳机会向
编号为4的赌徒退出赌局,剩余赌徒编号依次为:
3
最终胜利的赌徒编号是: 3
c语言代码原文链接:https://www.cnblogs.com/ciyeer/p/9029098.html
修改参考原文链接:https://www.cnblogs.com/pjCoder/p/5252621.html