我在生成随机数并将值赋予指针时遇到问题。
我想在这里做什么:生成一个 1 到 1000 之间的数字,玩家将收到该数量的金币。 基础金显然是0。 虽然,由于某种原因,当我打印整数黄金数量时,有超过3000的情况,这显然是一个错误的迹象。
goldchange 部分是因为玩家会多次收到金币,我希望它每次都能发挥作用。尽管目前,由于我正在测试程序的这一部分,所以玩家仅获得一次金币。
由于我是一名初学者程序员,我想我做错了。 我应该如何正确执行此操作,以便整数 GOLD 具有正确的值?
int* gold=0;
int* goldchange;
srand(time(0));
goldchange=gold;
gold=gold+rand()%1000+1;
goldchange=gold-goldchange;
printf("You have received the following amount of gold: %d", goldchange);
printf("You have this many golds: %d", gold);
例如,这是上次发生的情况: 您已收到以下数量的金币:777 你有这么多金币:3108
但应该是777而不是3108...... (显然每次运行都会给出不同的数字,但这两个值永远不会相同......)
最佳答案
您将变量声明为指针:
int* gold=0;
int* goldchange;
然后继续将它们视为常规 int
变量。在给定的代码中,我认为没有理由将这些变量声明为指针。为什么不只是
int gold=0;
int goldchange;
关于C - 随机数生成器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40819498/