谁能告诉我这里做错了什么?
问题陈述: 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循环不能用于第二个字符串?
答案 0 :(得分:0)
提示:你必须在增加另一个之后清除辅音和元音计数(例如{c_vwl++;c_cnsnt=0;}
),而不是在它们相等时,并且总是测试你的坏情况。
我不会给你一个示例代码。祝你好运