【问题标题】:C print progress barC 打印进度条
【发布时间】:2014-03-16 21:30:13
【问题描述】:

所以我现在正在开发一个 KnapSack 程序并尝试制作一个进度条。不幸的是,进度条不打印。我不知道为什么。

我希望每 1000 次迭代后出现一个进度条(以便它自动更新)。这应该每 1000 次迭代出现一次,并且应该输出类似“-----15% Complete-----”的内容。

我在下面包含了我的整个程序代码。我遇到的问题是

  if(i==-1)
    return(1);
  else
    return(0);

【问题讨论】:

  • 2 ^ Nitems 你真的是想在这些值之间进行按位异或运算吗?
  • 我的意思是,2 在 Nitems 的力量下。
  • 嗯,这是来自 math.h 的 pow (2, Nitems)^ 运算符是按位异或。
  • 尝试打印换行符,或刷新输出缓冲区:printf("...\n");printf("..."); fflush(stdout);
  • 如果我使用 pow(2,Nitems),则会出现此错误“错误:二进制 % 的操作数无效(具有‘double’和‘int’)”

标签: c


【解决方案1】:

首先,将2^Nitems 更改为1<<Nitems

然后,重新考虑if (((1<<Nitems) % 1000) == 0) 条件。

这是因为没有 2 的幂是 1000 的整数倍(即能被 1000 整除)。

也许像if ((Nitems % 4) == 0) 这样的东西会更适合您的需求。

顺便说一句,再次查看您的问题,您似乎没有在代码中的任何位置更改 Nitems 的值。事实上,你甚至都没有初始化它,所以你的意图并不明确!

【讨论】:

  • 工作 :) 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多