为什么在加法和减法工作正常的情况下,计算器在相乘和相除时总是给我0?

苏米·库玛

我只是想用C语言制作一个计算器。当我使用加法和减法时,程序运行良好,但是,当我尝试除法或乘法时,无论我提供什么输入,程序都将返回错误。

这是我的代码。在这种情况下,我只是简单地使用goto语句而不是循环来进行多个用户输入(例如1 + 2 + 3 + ....)的循环b,然后将先前的值保存回变量,然后询问另一个值并保存在variable中c

我只是想不出我的错误,任何帮助将不胜感激。

#include <stdio.h>

int main() {
    int a, d;
    double b=0,c=0;
    printf("This is a CLI Based calculator program!\nSelect what do you want to do?!");
    Restart:        //If user still want to continue with current results
    printf("\n1: Addition\t\t2: Subtraction\n3: Multiplication\t4: Divide\n");
    printf("\nChoose option:");
    scanf("%d",&a);
    //Check if user has previously used the program or not
    if(b==0) {
        printf("Enter First Number: ");
        scanf("%d",&b);
    } else {
        printf("\nYour Previous result is :%d", b);
        printf("\nEnter Another Number: ");
        scanf("%d",&c);
        goto Continue;
    }
    printf("Enter Second Number: ");
    scanf("%d",&c);
    Continue:       //Resume process from here if user wants to continue
    switch (a) {
        case 1:
            printf("This is Addition: %d\n", b+c);
            b = b+c;
            break;
        case 2:
            printf("This is subtraction: %d\n", b-c);
            b = b-c;
            break;
        case 3:
            printf("This is Multiplication: %d\n", b*c);
            b = b*c;
            break;
        case 4:
            printf("This is division: %d\n", b/c);
            b = b/c;
            break;
        default:
            printf("Oops! Seems like you entered wrong option, Select Again!");
            goto Restart;
    }
    //Check if User want to continue with previous result or not
    printf("Do you want to continue?\n1: Yes\t\t2: No!\n");
    printf("\nChoose option:");
    scanf("%d",&d);
    if (d==1){
        goto Restart;
    }
    else {
        printf("\nThank You! For using the calculator.");
    }
    return 0;
}
阿德里安·摩尔

您的线路scanf("%d",&b);(以及其他类似线路)是错误的。要读入一个double值,您需要使用%lf格式说明符(%d用于十进制整数)。

因此,将其更改为scanf("%lf",&b);(并根据需要在其他位置进行等效更改),然后重试。

因为printf你有同样的问题。在这里printf("This is Multiplication: %d\n", b*c);使用%d是错误的。使用%f打印双。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的flex和bison程序无法正常工作?正弦和余弦函数的计算器

来自分类Dev

为什么我的Perl计算器总是返回0?

来自分类Dev

为什么我的质量计算器无法在空格上正常工作?

来自分类Dev

为什么在这种情况下mb_substr和mb_strlen无法正常工作?

来自分类Dev

为什么我的args [1]在这种情况下无法正常工作

来自分类Dev

为什么我在PHP5.6.8的加法和减法中出错

来自分类Dev

用加法和减法计算累积和

来自分类Dev

为什么这个Java计算器给我这个答案?

来自分类Dev

HTML和Javascript制作简单的加法计算器

来自分类Dev

为什么减法和除法会在XSLT中给我NaN?

来自分类Dev

为什么在我的情况下typedef和定义结构之间有区别?

来自分类Dev

为什么Windows App和浏览器保护默认情况下会自行关闭?

来自分类Dev

为什么将多个数字相乘的结果与计算器中相乘的结果不同?

来自分类Dev

不能正常工作与Tkinter和类两个计算器

来自分类Dev

为什么.Net Math.Cos函数给我的答案不同于计算器?

来自分类Dev

为什么C和计算器上的float计算结果不同?

来自分类Dev

为什么有时我的键盘在Chrome和Opera中无法正常工作?

来自分类Dev

简单计算器总是返回0

来自分类Dev

为什么在这种情况下clearRect无法正常工作?

来自分类Dev

Matlab bsxfun-为什么在这种情况下bsxfun无法正常工作?

来自分类Dev

为什么在没有URL的情况下数据源可以正常工作?

来自分类Dev

在这种情况下,为什么currying函数的工作原理与javascript中的正常函数不同?

来自分类Dev

为什么在这种情况下,内联块无法正常工作以垂直居中?

来自分类Dev

为什么此代码在没有volatile的情况下可以正常工作?

来自分类Dev

在我的情况下,为什么我的猫鼬请求返回查询但不返回结果数据和用户信息?

来自分类Dev

为什么在我可以登录之前计算器会自动回答“ 0”?

来自分类Dev

为什么我的Jtextfield和jmenubar无法正常工作

来自分类Dev

为什么 strlen 在没有 '\0' 的情况下工作正常?

来自分类Dev

在Unity和Gnome正常工作的情况下,肉桂以软件渲染模式运行

Related 相关文章

  1. 1

    为什么我的flex和bison程序无法正常工作?正弦和余弦函数的计算器

  2. 2

    为什么我的Perl计算器总是返回0?

  3. 3

    为什么我的质量计算器无法在空格上正常工作?

  4. 4

    为什么在这种情况下mb_substr和mb_strlen无法正常工作?

  5. 5

    为什么我的args [1]在这种情况下无法正常工作

  6. 6

    为什么我在PHP5.6.8的加法和减法中出错

  7. 7

    用加法和减法计算累积和

  8. 8

    为什么这个Java计算器给我这个答案?

  9. 9

    HTML和Javascript制作简单的加法计算器

  10. 10

    为什么减法和除法会在XSLT中给我NaN?

  11. 11

    为什么在我的情况下typedef和定义结构之间有区别?

  12. 12

    为什么Windows App和浏览器保护默认情况下会自行关闭?

  13. 13

    为什么将多个数字相乘的结果与计算器中相乘的结果不同?

  14. 14

    不能正常工作与Tkinter和类两个计算器

  15. 15

    为什么.Net Math.Cos函数给我的答案不同于计算器?

  16. 16

    为什么C和计算器上的float计算结果不同?

  17. 17

    为什么有时我的键盘在Chrome和Opera中无法正常工作?

  18. 18

    简单计算器总是返回0

  19. 19

    为什么在这种情况下clearRect无法正常工作?

  20. 20

    Matlab bsxfun-为什么在这种情况下bsxfun无法正常工作?

  21. 21

    为什么在没有URL的情况下数据源可以正常工作?

  22. 22

    在这种情况下,为什么currying函数的工作原理与javascript中的正常函数不同?

  23. 23

    为什么在这种情况下,内联块无法正常工作以垂直居中?

  24. 24

    为什么此代码在没有volatile的情况下可以正常工作?

  25. 25

    在我的情况下,为什么我的猫鼬请求返回查询但不返回结果数据和用户信息?

  26. 26

    为什么在我可以登录之前计算器会自动回答“ 0”?

  27. 27

    为什么我的Jtextfield和jmenubar无法正常工作

  28. 28

    为什么 strlen 在没有 '\0' 的情况下工作正常?

  29. 29

    在Unity和Gnome正常工作的情况下,肉桂以软件渲染模式运行

热门标签

归档