代码可以在在线编译器上工作,但不能在我的PC上工作

时间:2019-02-20 16:38:47

标签: while-loop

此代码适用于https://www.onlinegdb.com/online_c++_compiler 但不在我的电脑上。 while循环无限期地继续。我试图找到错误,但发现当while循环开始时,“ w”数组的一些元素的值变为255或192。为什么?

#include <iostream>
using namespace std;
long n,k,l,i,j,cont;
int main()
{
    cin>>n>>k;
    long v[n+1][k+1];
    bool w[n+1],v2[100];
    for(i=1;i<=n;i++)
        w[i]=0;
    for(i=1;i<=100;i++)
        v2[i]=0;
    for(i=1;i<=n;i++)
        for(j=1;j<=k;j++)
           cin>>v[i][j];
    cont=n;
    while(cont)
    {
        i=1;
        while(w[i]!=0)i++;
        w[i]=1;
        cont--;
        for(j=1;j<=k;j++)
            v2[v[i][j]]=1;
        cout<<i;
        i++;
        for(;i<=n;i++)
            if(!w[i])
            {
                for(j=1;j<=k;j++)
                    if(v2[v[i][j]])
                    {
                        w[i]=1;
                        cout<<" "<<i;
                        cont--;
                        for(l=1;l<=k;l++)
                            v2[v[i][l]]=1;
                        break;
                    }
            }
        cout<<endl;
        for(l=1;l<=100;l++)
            v2[i]=0;
    }
    return 0;
}

0 个答案:

没有答案