样例看不懂求助
查看原帖
样例看不懂求助
1025097
koukou楼主2025/1/10 11:17

为什么会有一个4啊?

还有为什么我这段代码0分:

#include<bits/stdc++.h>
using namespace std;
int x, flag;
string s;
vector<int> ans; 
int main()
{
	ans.push_back(0);
	cin >> x;
	getline(cin, s);
	while(getline(cin, s))
	{
		int k;
		for(k = 0; k < s.size(); k++)
		{
			if(s[k] != ' ')
			{
				break;
			}
		}
		s = s.substr(k);
		//去掉空格  
		if(flag > 0)
		{
			if(s == "}")
			{
				flag--;
			}
			continue;
		}
		//如果是在不满足的条件中的语句则直接跳过 
		if(s[0] == 'i' && s[1] == 'f')
		{
			s = s.substr(4, s.find(')') - 4);
			int cnt = 0;
			bool f = 0;
			if(s[2] == '>')
			{
				f = 1;
			}
			for(int i = 4; i < s.size(); i++)
			{
				cnt = cnt * 10 + (s[i] - '0');
			}
			if(f == 0)
			{
				if(x >= cnt)
				{
					flag++;
				}
			}
			else
			{
				if(x <= cnt)
				{
					flag++;
				}
			}
			//提取判断条件并进行判断 
		}
		else
		{
			int cnt = 0;
			for(int i = 4; i + 1 < s.size(); i++)
			{
				cnt = cnt * 10 + (s[i] - '0');
			}
			ans.push_back(cnt);
			//提取数字并进行复制 
		}
	}
	sort(ans.begin(), ans.end());
	for(int i = 0; i < ans.size(); i++)
	{
		cout << ans[i] << " ";
	}
	return 0;
}
2025/1/10 11:17
加载中...