gcc编译没有错,就出不了结果,谁能帮我看下,多谢

#include
int main(int argc, char *argv[])
{
int n,x,y,i=0,a[100];

scanf("%d",&n);

for(i=0;i<n;i++)
{
    a[i]=i+1;

}

x=0;
y=n;

while(y>1)
{

    for(i=0;i<n;i++)

        if(a[i]!=0)
        {   
            x++;

            if(x%3==0)
            {
                a[i] = 0;
                y--;

            }

        }
}


i=0;
while(i<n)
{
    if(a[i]!=0)
        printf("%d\n",a[i]);
}

return 0;

}

while(i<n)
{
if(a[i]!=0)
printf("%d\n",a[i]);
i++;

}//加上 i++就可以了

死循环了,最后几行。

最后一个while的时候i没有变化,一直为0,如果你输入大于1的数字,就永远i<n,如果你输入小于1的数,就不会执行while里面的语句,程序直接结束。
正常情况,在while中加上i++

输入的数不会造成数组越界吧?

没的说了,前面都说完了

shangguanwaner 最早,却排在最后了。应该采纳他的,
大家的答案都对的,谢谢大家。
编译器没有提示错误,新手找的好累,呵呵