【问题标题】:C programming: I want subtract a weight per secondC编程:我想每秒减去一个重量
【发布时间】:2023-03-09 17:55:02
【问题描述】:

我是stackoverflow的新手,如果我犯了错误,我很抱歉。

我是 C 语言的初学者,我有一个项目需要每秒减去一个重量。例如 重量:50公斤 每秒减去 4%

我找到了这段代码

while(waitFor(1))
{
    *weight=(*weight)-(*weight)*0.4;
}

void waitFor(int secs)
{
    int retTime;
    retTime = time(0) + secs;     // Get finishing time.
    while (time(0) < retTime);    // Loop until it arrives.
}

但我不想等待 x 秒才能完成。我想要更快的解决方案。任何想法

**注意:我想知道需要多少秒才能使重量为0 睡眠命令它在我的电脑上不起作用。 **

用于清洁和消毒掉入化学物质水中的水池 一个坚实的身体。这种与水接触的固体 立即开始溶解,重量损失相当于每秒 4% 的质量。 如果化学品的溶解速率保持不变,则执行程序 将接受以克为单位的固体重量,并在之后显示 时间会完全溶解。时间以“时:分:秒”的形式显示。 例如,如果溶解时间为 3,740 秒,则显示 01:02:20。 要计算您需要实现接受的函数的时间 gram 并返回三个时间参数,即 小时、分钟和秒。注意打印在主页面上的时间 功能。

【问题讨论】:

  • sleep(1) 呢?
  • 更快的解决方案是什么意思?

标签: c timer subtraction


【解决方案1】:

您可以在循环中使用 sleep(int) 函数,它将等待暂停进程直到整数值。

  while((1) && weight > 0)
  {
 sleep(1);
*weight=(*weight)-(*weight)*0.4;
  }

等待1秒减法,继续运行

【讨论】:

    【解决方案2】:

    编辑:

    要找出重量达到 0 所需的秒数:

    unsigned seconds = 0;
    while(*weight != 0){
       *weight -= *weight * 0.04
       seconds++;
       //in case you have the patience to attend:
       sleep(1000); //in milliseconds => 1 second
    }
    

    请注意,权重被认为是指向整数类型的指针。

    【讨论】:

    • 我想知道需要多少秒才能使体重为 0。我的电脑无法休眠
    • 如果不对这些计算进行任何四舍五入,时间应该是无限的。例如,如果您从 100KG 开始并每秒减去 10%,那么 100 秒后您仍然有 0,002656139889KG。 (并且永远持续下去……)
    • 看看我写的练习题。也可以说它不是真正的秒数。
    • @João Neto 恐怕你错了。我的假设意味着 weight 是整数类型;这意味着该值会自动四舍五入到最接近的整数值。
    • @Gabe 体重每秒减去一次?
    猜你喜欢
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 2012-10-04
    • 2013-07-01
    • 2015-05-15
    相关资源
    最近更新 更多