获得计算的随机结果

时间:2017-04-17 20:12:45

标签: c printf scanf

刚刚开始编码,并试图做数学。代码应该在用户输入后执行添加,但是我在运行终端上的代码时只会得到-952492524之类的随机结果。解决这个问题的正确方法是什么?

这是代码:

#include <stdio.h>

main()
{
    int iquantity, iprice;
    int iresult = iquantity + iprice;

    scanf("%d", &iquantity);
    scanf("%d", &iprice);

    printf("%d", &iresult);
}

2 个答案:

答案 0 :(得分:3)

您对printf的调用是打印变量的地址而不是其值。 scanf 需要地址,因为它会改变变量的值;这是通过指针传递变量。 printf 只需读取值,因此参数按值传递,而不是通过指针传递。

这是在C语言编码时学习的一个重要概念;与现代语言不同,C不隐藏变量引用:必须包含指针并知道何时使用它以及何时不使用。

这是了解有关该主题的更多信息的绝佳链接。 What's the difference between passing by reference vs. passing by value?

试试这样:

#include <stdio.h>

int main(void)
{

    int iquantity, iprice;

    scanf("%d", &iquantity);

    scanf("%d", &iprice);

    int iresult = iquantity + iprice; /* after scanf, not before */

    printf("%d", iresult); /* and don't need a reference here */
}

答案 1 :(得分:0)

由于您设置了 ... remove:()=>{ // you can remove by the id, because it's unique document.getElementById('welcomeDivsss').remove(); } ... 的值而没有先给iresultiquantity一个值,因此默认情况下它们会从内存中设置为不确定的值。您需要在iprice方法调用后设置iresult