我是学生,我正在尝试编写一个函数,如果我输入元音则返回“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执行并且没有发生。 怎么了?
答案 0 :(得分:3)
您的等同比较是否有效。正如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;
答案 1 :(得分:1)
逗号不会像您想象的那样工作(上面已经解释过了),但没有任何反应的原因是因为您没有真正调用isVowel函数。代码
bool isVowel(char x);
定义了一个隐藏您打算调用的函数的新函数。为了使其工作,您需要正确调用函数,即
isVowel('x'); // or, better, isVowel(), as I'll explain below
并将isVowel函数定义移到main之上,否则它将不会在main中可见。第三件事是,传递给函数的“char x”参数实际上没有做任何事情,因为你用cin&gt;&gt;覆盖它。 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;
}