C - 无法遍历第二个字符串

时间:2017-12-07 09:24:09

标签: c

谁能告诉我这里做错了什么?

问题陈述: https://practice.geeksforgeeks.org/problems/good-or-bad-string/0

我的代码:

#include <stdio.h>
#include<string.h>
int is_vowel(char a) {
    if(a==97||a==101||a==105||a==111||a==117){
        return(1);
    }
    return(0);
}
int main() {
    //code
    int t,i;
    scanf("%d",&t);
    for(i=0;i<t;i++){
        char str[100];
        scanf("%s",str);
        printf("%s",str);
        int c_cnsnt=0;
        int c_vwl=0;
        int g_b=1;//suppose good
        for(int j=0;j<strlen(str);j++){
            //("%c",str[j]);
            int num=is_vowel(str[j]);
            printf("Debug %c %d %d\n",str[j],num,strlen(str));
            if(is_vowel(str[j])) {
                c_vwl++;
            }
            else { c_cnsnt++;}
            if(c_vwl==c_cnsnt){
                c_cnsnt=0;
                c_vwl=0; 
            }
            else {
                if(c_vwl>5||c_cnsnt>=3){
                    g_b=0;
                    break;
                }
            }

        }
        printf("%d\n",g_b);
    }

    return 0;
}

示例

输入:

2
aeioup??
bcdaeiou??

输出:

1
0

我的解决方案链接:

https://code.hackerearth.com/9bca55K

为什么for循环不能用于第二个字符串?

1 个答案:

答案 0 :(得分:0)

提示:你必须在增加另一个之后清除辅音和元音计数(例如{c_vwl++;c_cnsnt=0;}),而不是在它们相等时,并且总是测试你的坏情况。

我不会给你一个示例代码。祝你好运