此代码适用于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;
}