首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在做一个物理项目,然而每当我尝试使用乘法时,无论输入是什么,我的答案都是非常错误的

我正在做一个物理项目,然而每当我尝试使用乘法时,无论输入是什么,我的答案都是非常错误的
EN

Stack Overflow用户
提问于 2020-05-10 22:26:30
回答 1查看 35关注 0票数 0

这是我的代码,它还远没有完成,但在我解决这个问题之前,我不能再继续前进了。没有显示错误,但是我有警告- "format '%i‘需要类型为'int’的参数,但参数2具有类型'int*‘“

代码语言:javascript
复制
    #include<stdio.h>
    #include<math.h>

    main()   
    {
        int m_1;
        int m_2;
        printf("This program will take two particles, and present a collision between them.\n");
        printf("Values for base characteristics of these particles will be given by you.\n");
        printf("Enter 2 values for mass, separated by a comma.\n");
        scanf("\n%i,%i",&m_1,&m_2);

        int u_1;
        int u_2;
        int momentum1;
        int momentum2;
        int momentumtotal;

        momentum1 = m_1 * u_1;
        momentum2 = m_2 * u_2;
        momentumtotal = momentum1+momentum2;
        printf("Initial momentum - P1 = %i\n",&momentum1);

        printf("Initial momentum - P2 = %i\n", &momentum2);
    }
EN

回答 1

Stack Overflow用户

发布于 2020-05-10 23:50:40

你犯了几个错误,导致你的程序以一种意想不到的方式运行(重要的是用星号*标记的):

不必要的#include <math.h>.

  • *In占位符,用来获取变量的内存地址,value.

  • *momentum1 = m_1 * u_1;占位符没有被初始化,所以你怎么能期望multiplying.

  • Mass不能是负数,而你已经使用了%i占位符来获取和设置 u_1,您可以使用浮点数据类型来定义更高的精度,以便在从未使用过的scanf()printf().

  • momentumtotal中使用%f
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61713607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档