求助,为什么会输出两个cnt
查看原帖
求助,为什么会输出两个cnt
817346
emopawa楼主2023/5/16 17:45

rt

#include<bits/stdc++.h>
using namespace std;

int t,m,n,x;
int e,l;
int cnt=0;
bool f[10000001];
int op=0;
int main()
{
	memset(f,0,sizeof(f));
	cin>>t;
	while(t--)
	{
		cin>>n>>m;
		for(int i=1;i<=m;i++)
		{
			cin>>op>>x;
			if(op==1)
			{
				f[x]=1;
				cnt++;
			}
			if(op==2)
			{
				for(int j=1;j<=n;j++)
				{
					if(j==x)
					{
						continue;
					}
					f[j]=1;
				}
				cnt++;
			}
		}
		for(int i=1;i<=n;i++)
		{
			if(f[i]!=1)
			{
				cout<<-1<<endl;
				break;
			}
			else
			{
				cout<<cnt<<endl;
				break;
			}
    	}
		cnt=0;		
	}
	return 0;
}

当f[2]==false时,本应该执行if(f[i]!=1)语句,但是直接执行了else语句,调试的结果是f[2]=false啊 输出为一个3一个2

2023/5/16 17:45
加载中...