非常简单的功能,我无法执行

Very simple function I can't execute

本文关键字:执行 简单 功能 非常      更新时间:2023-10-16

我是一名学生,我正在尝试编写一个函数,如果我输入元音,则返回"true",如果我输入辅音,则返回"false"。

这是我写的:

#include <iostream>
using namespace std;
int main()
{
    bool isVowel(char x);
}
bool isVowel(char x)
{
     cout << "Enter a letter" << endl;
     cin >> x;
     if (x == 'a', 'e', 'i', 'o', 'u')
     return true;
     else
     return false;
}

我用 g++ isvowel.cpp-o isvowel 编译,显然没有错误,但后来我尝试使用 ./isvowel 执行并且没有发生。怎么了?

您的 if 相等比较不起作用。正如 Sam 在评论中所说,您需要巧妙地将 x 与每个值进行比较。

bool isVowel(char x)
{
     // The if is not really needed here since you can 
     // just return the result of the comparison
     if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u') {
       return true; 
     }
     else {
       return false;
     }
}

调用此方法:

std::cout << "Input character" << std::endl;
char x;
std::cin >> x;
bool vowel = isVowel(x);
std::cout << "Is vowel: " << vowel << std::endl;

号不是你认为的那样工作(上面已经解释过了),但什么都没有发生的原因是因为你没有真正调用isMoowel函数。代码

bool isVowel(char x);

定义一个新函数,该函数隐藏要调用的函数。要完成这项工作,您需要正确调用该函数,即

isVowel('x'); // or, better, isVowel(), as I'll explain below

并将 isMoowel 函数定义移到 main 上方,否则它在 main 中将不可见。第三件事是,您传递给函数的"char x"参数实际上并没有执行任何操作,因为您用 cin>> x 覆盖它;您可能希望使用不带参数的方法。最后,如果你想看到结果,你需要把它打印到屏幕上。因此,为了将其放在一起,您的代码应如下所示:

#include <iostream>
using namespace std;
bool isVowel()
{
     cout << "Enter a letter" << endl;
     char x;
     cin >> x;
     if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u')
         return true;
     else
         return false;
}
int main()
{
    bool b = isVowel();
    cout << b << endl;
}

或者,如果您愿意,

#include <iostream>
using namespace std;
bool isVowel(char x)
{
     if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u')
         return true;
     else
         return false;
}
int main()
{
    cout << "Enter a letter" << endl;
    char x;
    cin >> x;
    bool b = isVowel(x);
    cout << b << endl;
}