c - 为什么我的乘法运算返回零?

标签 c unix

我用 C 编写了我的第一个程序只是为了练习。但是,我不知道为什么它不起作用?以下代码片段中 socks * price; 的结果为零。我在这里错过了什么?

#include<stdio.h>

main()
{
      int socks;
      float price, total;

      printf("How many socks >> ");
      scanf(" %d", &socks);

      printf("What is the price for each pair ?");
      scanf(" %.3f", &price);

      total = socks * price;
      printf("\n\nTotal: %.3f", total);

return 0;
}

这是一个普通的乘法;我首先想知道用户支付了多少 socks 比方说 4,以及单双的 price 比方说 每只 sock 100.000(这对 socks 来说很多,我知道,但这只是举例)。

Total 是一个 float 数字,因此 4 * 100.000 = 应该给出 total 价格 = 400.000 但我得到的是 0

最佳答案

问题是 scanf 的错误使用。我们不在 scanf 中使用格式“%.3f”。相反,您可以在打印输出时使用它

      printf("What is the price for each pair ?");
      scanf("%f", &price);

      total = socks * price;
      printf("\n\nTotal: %.3f", total);

关于c - 为什么我的乘法运算返回零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20693332/

相关文章:

c - 互斥锁已锁定,但其他线程正在进入临界区

c - 在C中使用float的Printf

c - C 中数组的动态内存分配

linux - 验证字符串并确保它由特定字符组成

linux - Cygwin:中断阻塞读取

C++ UNIX 线程

c - 是否有用于 C 的类似 Clojure 的 STM 库

linux - 更改Linux中的符号链接(symbolic link)

linux - 我可以使用/dev/null 作为 find 命令吗?

c - 这种使用间接寻址的方式正确吗?