我在生成一个随机数并给该指针赋值时遇到了问题。C - 用随机数发生器发出
我想在这里做什么:生成一个介于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。 ... (显然每次运行提供了不同的数字,但两个值是绝不相同...)
'gold'是一个指针,所以'gold = gold + rand()%1000 + 1;'没有任何意义。似乎没有理由宣布“黄金”作为指针。也许只是用'int gold = 0'替换'int * gold = 0'。 –
@JohnColeman我现在觉得很蠢。谢谢。我不知道为什么我想把它当做指针。我将goldchange和gold从指针改为一个正常的整数,现在它可以工作。谢谢。 – Noxter