求大佬!!!

B3843 [GESP202306 三级] 密码合规

yzg4781 @ 2024-07-28 12:34:15

//seHJ12!@,sjdkffH$123,sdf!@&12HDHa!,123&^YUhg@!
#include<bits/stdc++.h>
using namespace std;
int main()
{
    char a[100]={};
    cin>>a;
    int t=0,t1=0,t2=0,t3=0;
    int k=0;
    int s=0;
    for (int i=0;i<strlen(a);i++)
    {
        if(a[i]==',')
        {
            if(t+t1+t2>=2 && t3==1 && k-s<=12 && k-s>=6)
            {
                for(int j=s;j<=k-1;j++)
                {
                    cout<<a[j];
                }
                s=k+1;
                cout<<endl;
            }
            k+=1;
            t=0,t1=0,t2=0,t3=0;
        }
        else
        {
            if(a[k]>='a' && a[k]<='z')
            t=1;
            if(a[k]>='A' && a[k]<='Z')
            t1=1;
            if(a[k]>='0' && a[k]<='9')
            t2=1;
            if(a[k]=='!' || a[k]=='@' || a[k]=='#' || a[k]=='$')
            t3=1;
            k++; 
        }   
     } 
}

by yzg4781 @ 2024-07-28 12:36:27

最上面的是题目的测试数据

我测试数据后是对的,但提交后0分


by lyx422393265 @ 2024-07-28 20:27:05

最后一个密码的结尾不是逗号,需要注意判断,如果最后一个密码合法需要输出


by yzg4781 @ 2024-07-30 15:10:47

@lyx422393265 没关系的吧?

改了还是错


by lyx422393265 @ 2024-07-31 13:19:12

@yzg4781 当然有关系啊。。你的分支是只有遇到逗号才输出的,最后一串密码结尾是\0,要是合法你咋输出,样例只是恰好最后一个密码不合法


by piyuhan666 @ 2024-08-03 13:52:39

这题这部分有点问题


|