qleizhengye2022 @ 2024-08-05 19:53:40
#include<bits/stdc++.h>
#define ll long long
using namespace std;
string s;
string size[105];
int main()
{
cin>>s;
int a=1;
for(int i=0;i<s.size();i++)
{
while(s[i]!=','&&s[i]!='\n'&&i<s.size())
{
size[a]+=s[i];
i++;
}
a++;
}
for(int i=1;i<a;i++)
{
if(!(size[i].size()>=6&&size[i].size()<=12)) continue;
bool f1=0,f2=0,f3=0,f4=0;
for(int j=0;j<size[i].size();j++)
{
string t=size[i];
if(t[j]>='A'&&t[j]<='Z') f1=true;
else if(t[j]>='a'&&t[j]<='z') f2=true;
else if(t[j]>='0'&&t[j]<='9') f3=true;
else if(!(t[j]=='!'||t[j]=='@'||t[j]=='#'||t[j]=='$')) f4=true;
}
if(f1+f2+f3>=2&&f4!=true) cout<<size[i]<<endl;
}
return 0;
}
by liyuan2023 @ 2024-08-05 20:01:24
@qleizhengye2022
bool 数组相加只能为0或1
by liyuan2023 @ 2024-08-05 20:01:47
@qleizhengye2022 而且怎么又是你
by liaocr @ 2024-08-05 20:04:45
@qleizhengye2022 题目要求至少有一个特殊符号
by liaocr @ 2024-08-05 20:07:04
if(!(size[i].size()>=6&&size[i].size()<=12)) continue;
bool f1=0,f2=0,f3=0,f4=0, f5 = 0;
for(int j=0;j<size[i].size();j++)
{
string t=size[i];
if(t[j]>='A'&&t[j]<='Z') f1=true;
else if(t[j]>='a'&&t[j]<='z') f2=true;
else if(t[j]>='0'&&t[j]<='9') f3=true;
else if(t[j]=='!'||t[j]=='@'||t[j]=='#'||t[j]=='$') f4 = true;
else f5=true;
}
if(f1+f2+f3>=2&&f4&&f5!=true) cout<<size[i]<<endl;
@qleizhengye2022 改成这样就AC了
by liaocr @ 2024-08-05 20:08:15
@liyuan2023 我试了 不改int好像也行 所以这就是一个奇妙的玄学问题了 QwQ
by panshengqi @ 2024-08-05 20:18:11
@liaocr
我建议你把size改成其他名字,因为size好像是关键字 不然会编译错误
by liaocr @ 2024-08-05 20:19:58
@panshengqi 是应该改了 我一般用siz 不过帖主用的size我就没去动他了
by qleizhengye2022 @ 2024-08-06 12:32:00
感谢各位大佬