杭电acm1039我的代码为什么AC不了?
#include<iostream>
#include<string>

using namespace std;
int main()
{
    string in;
    char temp;
    int flag, flagv;
    int vowel = 0;
    int consonant = 0;
    while (cin >> in)
    {
        if (in == "end")
            break;
        flag = 1;
        flagv = 0;
        temp = '~';
        for (int i = 0; i < in.size(); i++)
        {
            if (in[i] == 'a'||in[i]=='e'||in[i]=='i'||in[i]=='o'||in[i]=='u')
            {
                consonant = 0;
                flagv = 1;
                    vowel++;
                if (vowel == 3)
                {
                    flag = 0;
                    break;
                }                   
            }
            else
            {
                vowel = 0;
                consonant++;
                if (consonant == 3)
                {
                    flag = 0;
                    break;
                }
            }
            if (temp == in[i] &&in[i]!='e'&&in[i]!='o')
            {
                flag = 0;
                break;
            }
            else
                temp = in[i];

        }
        cout << "<" << in << "> " << "is ";
        flag == 1&&flagv==1 ? cout << "acceptable" : cout << "not acceptable";
        cout << endl;
    }
    return 0;
}

1个回答

你的元音计数变量和辅音计数变量需要在每次循环开始的时候初始化为0,不然上次结果会影响到下次结果的。

比如你按照下面这个输入试试:
e
ee

m294955408
偷偷的挂掉 回复失孤: 现在呢?修改后的代码可以在发一下么?
2 年多之前 回复
Brucelee399
Ones' 改了,还是AC不了
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问