我是学习函数的新手,我基本上是在做大学练习,用户输入两个字母,例如 j,然后字母表中的字母 1 高于字母 2,反之亦然。它必须是一个 bool 函数,这是问题所在。
4. A。为可以传递一对的函数 IsAlphaHigher 写一个原型(prototype) 字符,这将返回一个 boolean 值,指示是否 第一个字符按字母顺序排列较高。 (注意‘a’高于‘z’) b.为函数 IsAlphaHigher 写一个定义 C。编写一个将使用函数 IsAlphaHigher 的测试应用程序。
现在,如果用户输入类似 n 或大写字母 A N 的内容,就很容易了。 ASCII 表中最低的字母在字母表中较高。但是,当用户输入诸如大写字母 R 小写字母 a 之类的内容时,大写字母 R 在 ASCII 表中为 82,小写字母 a 为 97。
我发现如果任何小写字母 - 任何大写字母 = 大于 32,那么大写字母在字母表中的位置更高。
这背后的逻辑是 a - A = 32 , b - B = 32 , q - Q = 32 等。所以大于 32 的大写字母高于小写字母,低于 32 的任何字母,小写字母高于大写字母。
我使用了一系列 if 语句来解决这个问题,但是我遇到了一个错误,我不太确定它来自哪里或为什么,所以我非常感谢您的帮助。
谢谢。
#include <iostream>
using namespace std;
bool IsAlphaHigher(char letterOne, char letterTwo);
int main()
{
char letter1, letter2;
cout << "Enter two letters ";
cin >> letter1 >> letter2;
IsAlphaHigher(letter1, letter2);
if (IsAlphaHigher(letter1,letter2) == 1)
cout << "letter one is higher on the alphabet than letter two ";
else
cout << "letter two is higher on the alphabet than letter one ";
}
bool IsAlphaHigher(char letterOne, char letterTwo)
{
bool status;
if (letterOne < 90 && letterTwo < 90)
{
if (letterOne < letterTwo)
status = true;
else
status = false;
}
if (letterOne > 90 && letterTwo < 90)
{
if (letterOne < letterTwo)
status = true;
else
status = false;
}
if (letterOne < 90 && letterTwo > 90)
{
if (letterTwo - letterOne <= 32)
status = true;
else
status = false;
}
if (letterOne > 90 && letterTwo < 90)
{
if (letterOne - letterTwo <= 32)
status = true;
else
status = false;
}
return status;
}
当我构建它时,它说没有错误,但是当我进入命令 shell 并输入两个字母时,它给了我一个“运行时检查失败 #3 T” 我不知道为什么。
这是我的第一个 boolean 函数,所以我想我做错了什么,非常感谢任何关于我哪里出错的提示。
最佳答案
您可以先将两个字母转换为相同的大小写。不确定哪种情况你想返回 true。
bool IsAlphaHigher(char letterOne, char letterTwo)
{
if (letterOne > 90) letterOne -= 32;
if (letterTwo > 90) letterTwo -= 32;
return letterOne > letterTwo; // true if letterOne is higher.
}
关于c++ - 我在使用 bool 函数时遇到问题,用户输入两个字母并输出哪个字母在字母表中最高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41798483/