清风-xbrom 2024-06-04 18:36 采纳率: 66.7%
浏览 19

关于#c++#的问题,请各位专家解答!

img


//洛谷题目
我的0分代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
char s[105];
int ans; 
int num=1,len,flag;
bool have1,have2,have3,have4,f=1;
int main(){
    cin>>s;
    s[strlen(s)]=',';
    for(int i=0;i<=strlen(s);i++){
        //条件1
        if(s[i]>='a' and s[i]<='z') have1=1;
        else if(s[i]>='A' and s[i]<='Z') have2=1;
        else if(s[i]>='0' and s[i]<='9') have3=1;
        else if(s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$') have4=1;
        else if(s[i]!=',') f=0;
        else{
            bool temp=0;
            //判断是否满足第一个条件 
            //判断是否含有要求的字符 
            if(f==0) temp=1;
            //判断是否满足第二个条件 
            //判断长度 
            if(len<6 or len>12) temp=1;
            //判断是否满足第三个条件  
            ans=have1+have2+have3;
            if(ans<2) temp=1;
            ans+=have4;
            if(ans<3) temp=1;
            //审核
            if(temp==1){
                flag=i+1;
                len=0;
                ans=0;
                f=1;
                have1=0,have2=0,have3=0,have4=0; 
                continue;
            } 
            //输出 
            for(int j=flag;j<i;j++) cout<<s[j];
            cout<<endl;
            //标记 
            flag=i+1;
            len=0;
            ans=0;
            f=1;
            have1=0,have2=0,have3=0,have4=0; 
        }
        len++;
    }
    return 0;
}

有谁指导一下哪里错了?

  • 写回答

5条回答 默认 最新

  • 江美山人757 2024-06-21 15:26
    关注
    
    #include<iostream>
    #include<string>
    using namespace std;
    #include<vector>
    #include<algorithm>
    
    
    int main() {
        string s;
        cin >> s;
        string v = "";
        long long a=0;
        vector<char> v2 = { '!','@','#','$'};
        int E_MAX = 0, E_MIN= 0, num = 0, C = 0;
        string str = "";
        while(true)
        {
            a = s.find(",");
            if (a != -1) {str = s.substr(0, a);}
            else{str = s;}
            s = s.substr(a + 1, s.length());
            E_MAX = 0; E_MIN = 0; num = 0; C = 0;
            if (str.length()>=6 and str.length()<=12) {
                for (size_t i = 0; i < str.length(); i++)
                {
                    if (str[i] >= 'a' and str[i] <= 'z') { if (E_MIN == 0) { E_MIN++; }}
                    else if (str[i] >= 'A' and str[i] <= 'Z') { if (E_MAX == 0) { E_MAX++; } }
                    else if (str[i] >= '0' and str[i] <= '9') { if (num == 0) {num++; } }
                    else if (find(v2.begin(), v2.end(), str[i]) != v2.end()) {C++; }
                    else {
                        break;
                    }
                    if (i == str.length() - 1) {
                        if (E_MIN + E_MAX + num >= 2 and C != 0) {
                            cout << str << endl;
                        }
                    }
                }
            }
            if (a == -1) { break; }
        }
        
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 6月4日