2017-12-07 7 views
-6

誰かが私がここで間違っていると言うことができますか?C - 2番目の文字列以降を反復できません

問題の声明: 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

はなぜループのための第二の文字列では動作しませんか?

答えて

0

ヒント:子音と母音のカウントをクリアしてから、等価でないときは(たとえば{c_vwl++;c_cnsnt=0;})、BAD条件をテストする必要があります。

サンプルコードは提供しません。幸運

+0

私は自分のコードを改善しましたが、今は最初のtcに対して正しいansを与えていますが、ループは2番目の文字列に対して繰り返しませんか? – confused

+0

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

+0

をご覧ください。ありがとうございました – confused

関連する問題