- 主题:请问这个怎么解决
--
FROM 183.197.194.*
写得很清楚,缓冲区溢出,就是buffer越界了
--
FROM 114.241.228.*
想解决问题,最好能够贴出来最小的代码
【 在 DorD 的大作中提到: 】
: [upload=1][/upload]
--
FROM 120.253.228.*
【 在 easior 的大作中提到: 】
: 想解决问题,最好能够贴出来最小的代码
:
#include<iostream>
using namespace std;
int main ()
{
int a[16],x=0,n=0,i=0; //17个人编号,x表示退出人数,n表示报数,i是数组下标
for(i=0;i<17;i++) //编号写入数组
{a[i]=i+1;}
i=0;//i重新置0,从数组第一个开始报数
while(x<16)//x是退出的人数,当x=16时停止循环,因为此时队列里就剩下一个人了
{
if (a[i]!=0)
{
n++;
}
if(n==3) //报数3的倍数的人退出,该数组置0,x加1
{a[i]=0;n=0;x++;}
i++;
if (i==17)
{i=0;}
}
//退出循环
for( i=0;i<17;i++)
{if(a[i]!=0)
{ cout<<a[i]<<endl;
}
}
}
--
FROM 183.197.194.*
数组定义为a[16],那么下标范围不能是[0, 17),而是[0, 16)
没有空格、没有空行,是很不好的代码格式。我以前见过有个应届生刚进组时是这样写代码的。
当然,现在有了clang-format,方便一点。
【 在 DorD 的大作中提到: 】
:
: #include<iostream>
: using namespace std;
: ...................
--
修改:z16166 FROM 114.241.228.*
FROM 114.241.228.*
建议从c语言教程学起
【 在 DorD 的大作中提到: 】
:
: #include<iostream>
: using namespace std;
: ...................
--
FROM 219.142.253.*
学C++不用从C学,哈哈
【 在 mopo 的大作中提到: 】
: 建议从c语言教程学起
:
--
FROM 114.241.228.*
初学者 建议单步跑一下先
--
FROM 120.244.130.*
说是这么说,但是大部分c++教程其实已经假定了读者知道c的基本概念了,哪怕是tc++pl我觉得没几个真初学者能看的下去
【 在 z16166 的大作中提到: 】
: 学C++不用从C学,哈哈
:
--
FROM 219.142.253.*
tc++pl本来也不是写给初学者的呀。
给初学者是那种没有编程概念的人学的,主要是学编程而不是语言。比如美国谭浩强deitel的书。
【 在 mopo 的大作中提到: 】
: 说是这么说,但是大部分c++教程其实已经假定了读者知道c的基本概念了,哪怕是tc++pl我觉得没几个真初学者能看的下去
:
: 【 在 z16166 的大作中提到: 】
: ...................
--
修改:milksea FROM 114.249.211.*
FROM 114.249.211.*