【问题标题】:coin flip program problems, C programming硬币翻转程序问题,C 编程
【发布时间】:2014-09-24 08:17:40
【问题描述】:

这是我制作掷硬币模拟器的程序,这是为学校准备的,所以我必须使用自己的代码。但我需要帮助,这个想法是将变量 coin 乘以 3.3,然后四舍五入检查它是奇数还是偶数,并将其与正面或反面相关联,但我不断收到此错误:

(错误 2 错误 LNK1104:无法打开文件 'gdi32.lib' F:\HopelessArts\UTILITIES\coinFlip\coinFlip\LINK coinFlip)

我不知道这是什么意思...这是我的语法:

#include <stdio.h>
int main(void) {
  //coin flip program 100x should be 50/50 heads tails

  int coin;
  int heads;
  int tails;
  int counter;

  coin = 3;
  heads = 0;
  tails = 0;

  for (counter = 0; counter < 100; counter++) {

    coin = coin * 3.3;

    if (coin % 2 == 0) {
      heads++;
    } else {
      tails++;
    }

    printf("Heads, tails %d%d", heads, tails);
  }

}

【问题讨论】:

  • 尝试从 "int main(void)" 中删除 "void" 只需使用 int main() {
  • 1>LINK : 致命错误 LNK1104: 删除 void 后无法打开文件 'gdi32.lib' 响应此错误。
  • 这个警告对于双重发布很抱歉。警告 1 警告 C4244: '=' : 从 'double' 转换为 'int',可能丢失数据 f:\hopelessarts\utilities\coinflip\coinflip \coin.c 17 1 硬币翻转
  • 你的随机数生成好像不是特别随机,可以用rand()吗?
  • 可能你已经默认你的编译器链接到 gdi32。最好检查您的编译器选项。

标签: c coin-flipping


【解决方案1】:

嘿,我通过安装(或重新安装不确定)windows sdk 解决了库问题,我使用 rand 函数修复了我的代码,如下所示:

#include <stdio.h>
#include <stdlib.h>

int main() {
//coin flip program 100x should be about 50/50 heads tails

int coin;
int heads;
int tails;
int counter;

heads = 0;
tails = 0;

for (counter = 0; counter < 100; counter++){

coin = rand();

 if (coin%2 == 0 ){
     heads++;
 }
 else{
     tails++;
 }

printf("%d,%d  ", heads, tails);
}
printf("listed heads first then tails.");
system("pause");
}

感谢所有输入!我会研究你所有的答案,但要成为一个更好的程序员!

【讨论】:

    【解决方案2】:

    您不能像之前那样将 floatdouble 值赋给 int 变量

    coin = coin * 3.3;
    

    尝试将int coin;改为double coin;

    【讨论】:

    • 虽然使用int类型可能不能满足OP的需要,但是代码当然可以“给一个int变量赋值float或者double”并得到截断的结果
    • 将其更改为 double 后发生这些错误:错误 1 ​​错误 C2296: '%' : 非法,左操作数的类型为 'double' f:\hopelessarts\utilities\coinflip\coinflip\coin.c IntelliSense : 表达式必须具有整数或无范围枚举类型 f:\HopelessArts\UTILITIES\coinFlip\coinFlip\coin.c 18 7 coinFlip
    • 您无法生成随机数......您不能将 % 用于双精度数或浮点数。它仅适用于整数。我的意见是尝试一种新方法来生成随机数。喜欢 rand();
    • 好的,我将不得不查找如何实现 rand,我们在课堂上讨论过它,但我不确定如何使用它......所以我写这个是半随机的。
    • 您可以通过多种方式生成随机数。 (但不是很多)。但这是你做对了。你必须这样做。提供 OP 所需的代码并不是一个好习惯,因为他们中的一些人可能会在此处发布作业,让其他人去做!
    【解决方案3】:

    上面有很多关于提高生成器随机性的好建议,尽管您似乎忘记指定 main() 函数的返回值。添加:

    return 0;
    

    就在最后一个大括号之前,并删除 main() 的“void”参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多