gpt4 book ai didi

c - 使用switch语句制作一个简单的计算器

转载 作者:行者123 更新时间:2023-11-30 19:57:43 24 4
gpt4 key购买 nike

我创建了一个使用“switch”语句来制作简单计算器的程序。如果我首先获取整数输出,然后获取运算符输出,则 b 的值始终显示为“0”。 (代码在这里给出)但是,如果我首先获取运算符(operator)输出,程序就可以正常工作。这可能是什么原因?谢谢。

int a;
int b;
char sign;

printf("Enter two required integers: ");
scanf("%d", &a);
scanf("%d", &b);

printf("Enter the operator(+ or - or * or /): ");
scanf(" %s", &sign);


switch(sign){

case '+': printf("The summation of %d and %d is %d", a,b, a+b);
break;

case '-': printf("The subtraction of %d and %d is %d", a,b, a-b);
break;

case '*': printf("The product of %d and %d is %d", a,b, a*b);
break;

case '/': printf("The division of %d and %d is %d", a,b, a/b);
break;

default: printf("Enter the right operator noob!");
}

return 0;

}

最佳答案

scanf(" %s", &sign);

这是不正确的。 signchar 因此它只能存储 1 个字符,但您正在尝试读取一个需要超过 1 个字符的字符串,以便覆盖内存。

宁可使用

scanf(" %c", &sign);

关于c - 使用switch语句制作一个简单的计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38949789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com