我是c +的新手,我正在尝试从50开始增加汽车,但如果youdamage比greamage更好,那么只增加1。我希望汽车在下一次循环时保持其价值。我希望这是有道理的。
int Power (int &car);
int main(){
int car = 50;
// ...
// ...
// ...
int carDamage = 0;
int yourDamage = 0;
// pick a random number between 1 to 50
yourDamage = 0 + rand() % (50 - 0 + 1);
carDamage = 0 + rand() % (50 - 0 + 1);
cout << "You hit the car and cause damage of: " << carDamage << endl;
cout << "The car hits you and causes damage of: " << yourDamage << endl;
cout << endl;
if(carDamage < yourDamage)
{
cout << "You win" << endl;
cout << "You gain strength." << endl;
cout << endl;
int car = car + 1;
}
else
{
答案 0 :(得分:9)
你宣布一个新变量遮蔽原始变量。
变化
int car = car + 1;
到
car = car + 1;
答案 1 :(得分:8)
您需要重新分配相同的变量。您正在声明一个新变量。
改变这个:
int car = car + 1;
对此:
++car;
答案 2 :(得分:1)
通过这样做:
int car = car + 1;
您正在将汽车重新定义为整数。
请参阅:
#include <stdio.h>
int car;
int main() {
car = 0;
for (int i = 0; i < 10; i++) {
int car = 0;
car++;
}
printf("%3d", car);
}
VS
#include <stdio.h>
int car;
int main() {
car = 0;
for (int i = 0; i < 10; i++) {
car++;
}
printf("%3d", car);
}
答案 3 :(得分:0)
您在if语句中声明了一个新变量car
,它隐藏了上述范围中的原始car
变量。删除类型将允许您引用现有变量,而不是声明新变量。
简而言之,改变
int car = car + 1;
到
car = car + 1;
答案 4 :(得分:0)
当你说
时,你的问题就出现了int car = car + 1;
您基本上创建了一个名为car的本地变量(if语句的本地变量),该变量的值为51(因为原始的本地范围变量(本地到main)包含50并且您添加1)。一旦你离开if语句,就会销毁这个局部变量(if语句中的on)。
如果将其更改为
car = car + 1;
您现在将变量local修改为main,因此将保留更新。
答案 5 :(得分:0)
我没有看到一个循环,但我会冒险猜测你的问题是你在做这一行:
int car = car + 1;
在你的:
if(carDamage < yourDamage)
语句表示您每次都要重新声明,重置其值。
将int car;
大写为语句,并在最初编写++car;
int car = car + 1;