【发布时间】:2016-07-14 20:23:49
【问题描述】:
我正在尝试使用 C++ 将一系列字母更改为数字,并开始编写此代码。
但是,计算 digit1 变量的数学似乎永远不会被执行。
有什么想法吗?
#include <iostream>
#include <string>
using namespace std;
int main()
{
int qtyofnumbers, num, digit1, counter;
char letters, upperlower;
cout << "Enter a letter: ";
cin >> letters;
for (counter = 0; counter < 8; counter++)
{
if (counter == 3)
cout << "-";
num = static_cast<int>(letters) - static_cast<int>('A');
if (0 <= num && num < 26)
digit1 = (num / 3) + 2;
if (((num / 3 == 6 ) || (num / 3 == 7)) && (num % 3 == 0))
digit1 = digit1-1;
if (digit1 > 9)
digit1 = 9;
cin >> letters;
}
cout << digit1;
return 0;
}
【问题讨论】:
-
使用
{和}!!! -
请在寻求帮助之前正确缩进您的代码。很难按原样阅读。
-
你用调试器单步调试代码了吗?
-
@jtbandes,谢谢。应该更有条理..谢谢!
-
您的前两个
ifs 是否涵盖了您的程序可能遇到的num的所有可能值?如果没有,digit1将在第三个if中未初始化地使用,这就是贯穿始终的 UB。我猜它们涵盖了所有值,但仍然如此。
标签: c++ if-statement statements truncated