gpt4 book ai didi

c++ - 计算在两个辅音 C++ 之间找到的元音

转载 作者:行者123 更新时间:2023-11-30 05:26:51 30 4
gpt4 key购买 nike

所以我尝试解决这个问题,这是一种计算并打印字符串中两个辅音之间的元音数量的算法。我做了一个程序,但它总是给我错误的答案,我真的不知道哪里出了问题。例如,对于输入:"oasele sunt fragile" 它应该打印 4 但实际上打印了 5。

    #include <iostream>
#include <cctype>
#include <string.h>
using namespace std;
char s[255];
int isvoc(int i)
{
char c=tolower(s[i]);
if (isspace(c)) return 0;
else
if ((c=='a') || (c=='e') || (c=='i') || (c=='o') || (c=='u')) return 1;
else return 0;
}
int main()
{
cin.get(s,255);
int l=strlen(s),nr=0;
for (int i=1;i<l-1;i++)
if (!(isvoc(i-1)) && (isvoc(i)) && !(isvoc(i+1))) nr++;
cout<<nr;
}

最佳答案

您正在计算出现在非元音之间的元音。所以在“a e i”中你会得到 1,而不是 0。你需要:

if (iscon(i-1) && isvoc(i) && iscon(i+1))

您可以通过多种方式实现 iscon(),例如

bool iscon(int i) { return isalpha(str[i]) && !isvoc(i); }

关于c++ - 计算在两个辅音 C++ 之间找到的元音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37600419/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com