gpt4 book ai didi

用 C 创建计算器

转载 作者:行者123 更新时间:2023-11-30 18:19:21 27 4
gpt4 key购买 nike

如何在不使用 if elseswitch case 的情况下用 C 创建计算器?

这是到目前为止的代码:

void main()

{

int a,b,sum,sub,pro,divide; /** sum is for addition,,sub is for subtraction,,pro is for product,,divide is for division**/
char operator;
clrscr();
printf("enter a value:");
scanf("%d",&a);
printf("enter another value:");
scanf("%d",&b);
printf("enter a operator:");
scanf("%c",&operator);

operator=='+';
sum=a+b;
printf("\nAnswer=%d",sum);
operator=='-'
sub=a-b;
printf("\nAnswer=%d",sub);
operator=='*';
pro=a*b;
prinf("\nAnswer=%d",pro);
operator=='/';
printf("\nAnswer=%d",divide);
getch();

}

最佳答案

下面的内容应该可以解决问题。它利用将运算符与 +- 进行比较的事实,避免使用 if elseswitch >、*/ 仅在其中一项比较中返回 1,在其余比较中返回 0。因此,结果是这些比较的总和,乘以与每个运算符对应的数学表达式:

#include<stdio.h>

main(){
float a,b,result;
char oper [2];
printf("enter a value:");
scanf("%f",&a);
printf("enter another value:");
scanf("%f",&b);
printf("enter an operator:");
scanf("%1s", oper);
result = (oper[0] == '+') * (a + b) +
(oper[0] == '-') * (a - b) +
(oper[0] == '*') * (a * b) +
(oper[0] == '/') * (a / b);
printf("%4.2f %s %4.2f = %4.2f\n", a, oper, b, result);
}

当保存到名为 calculator.c 的文件时,以下命令将对其进行编译:

gcc calculator.c

输出将被称为a.out并且可以像这样运行:

./a.out
enter a value:24
enter another value:4
enter an operator:/
24.00 / 4.00 = 6.00

我一直在使用 gcc (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2) 但我确信其他版本也能正常工作。

如果我通过了你的作业,请告诉我;-)

关于用 C 创建计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4173090/

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