【发布时间】:2017-04-10 17:04:08
【问题描述】:
我在生成随机数并将值赋给指针时遇到问题。
我想在这里做的:生成一个介于 1 到 1000 之间的数字,玩家将获得该数量的金币。 基础金明显为0。 虽然由于某种原因,当我 printf 整数金的数量时,有超过 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.... (显然每次运行都会给出不同的数字,但是这两个值永远不会相同......)
【问题讨论】:
-
gold是一个指针,所以gold=gold+rand()%1000+1;没有意义。似乎没有任何理由将gold声明为指针。也许只需将int* gold = 0替换为int gold = 0。 -
@JohnColeman 我现在感觉很愚蠢。谢谢你。我不知道为什么我想把它作为一个指针。我将 goldchange 和 gold 从指针更改为普通整数,现在它可以工作了。谢谢。
标签: c pointers random numbers generator