这个的编译为什么过不了啊

大佬们这个的编译为什么过不了啊
#include
using namespace std;
struct paopao
{
int num;
}p[9000000000];
int main()
{
int n,x=1,i,j,l;
cin>>n;
for(i=1;i<=n;i++) p[i].num=i;
i=0;
j=n+1;
while(1)
{
l=x/2;
i++;
if(i!=x*l)
{
p[j].num=p[i].num;
j++;
}
else
{
x++;
n--;
}
if(n==0)
{
cout<<p[j-1].num;
return 0;
}
}
}

img

img

你把你的报错贴一下。

我用vs2017可以编译通过,猜测你编译不过的原因:

  1. 定义结构体加上 typedef struct paopao {}...
  2. 定义结构体这个p[9000000000];太大,把它定义小点试试。p[9000];
  3. 在最后一个大括号前面一行加上return 0;
    不知道是不是这些问题。。。

没填

#include <iostream>
using namespace std;
struct paopao
{
int num;
}p[9000000000];
int main()
{
int n,x=1,i,j,l;
cin>>n;
for(i=1;i<=n;i++) p[i].num=i;
i=0;
j=n+1;
while(1)
{
l=x/2;
i++;
if(i!=x*l)
{
p[j].num=p[i].num;
j++;
}
else
{
x++;
n--;
}
if(n==0)
{
cout<<p[j-1].num;
return 0;
}
}
}

img