【发布时间】:2020-04-29 04:13:06
【问题描述】:
所以我一直在研究一个问题,这个想法偶然发现了我。当我在主函数之外声明一个变量时,程序可以正常工作,即它达到“友谊就是魔法”的 else 情况,但是如果在内部声明变量,它返回 Chris 而不是 Friendship 语句。
int mis, chr;
int main() {
int a, n, m;
cin >> a;
for (int i = 0; i < a; i++) {
//code here
}
if(mis > chr)
cout << "Mishka";
else if(chr > mis)
cout << "Chris";
else
cout << "Friendship is magic!^^";
}
我使用的输入使 chr 和 mis 的值相等,因此它应该对 else 语句进行评估,但它只是在 else if 处停止。
【问题讨论】:
-
在全局范围内声明的变量与在本地范围内初始化的变量不同。我建议始终通过
int mis = 0, chr = 0初始化您的变量,这样就很清楚了。您是否还在code here循环期间修改了mis或chr? -
我第二个 Tas。此外,这可能是一个明显的建议,但您是否尝试在
if语句之前输出两个变量的值,以检查发生了什么? -
@Tas 是的,我确实在此处的代码部分修改了 mis 和 chr 的值。
-
可能存在您未发布的代码中的错误。最好复制并粘贴您的真实代码(以及您提供的输入)