gpt4 book ai didi

c - 浮点异常(核心转储)-c 程序

转载 作者:行者123 更新时间:2023-11-30 19:37:09 25 4
gpt4 key购买 nike

我对我的一项作业有疑问:

  1. 编写一个程序,允许用户输入以下形式的简单表达式数字运算符号
  2. 程序计算表达式并在终端上显示结果,精确到小数点后两位。
  3. 但是,程序只允许调用 scanf 函数一次。
<小时/>
#include <stdio.h>

int main(void)
{
int num1, num2, sum, difference, product, quotient;

num1 = 0;
num2 = 0;

printf("type in expression");
scanf("%d%d", &num1, &num2);

sum = num1+num2;
difference = num1-num2;
product = num1*num2;
quotient = num1/num2;


switch (num1) {
case 2: printf("%d/%d=%d", num1, num2!=0 , quotient);
break;
case 1: printf("%d*%d=%d", num1, num2, product);
break;
case 0: printf("%d-%d=%d", num1, num2, difference);
break;
default: printf("%d+%d=%d", num1, num2, sum);
break;
}
}

程序可以编译,但是当我运行它时,出现以下消息:

Floating point exception (core dumped)

这是什么意思?另外,如果还有什么问题,请告诉我。

最佳答案

我想这就是你所需要的。

   #include <stdio.h>

int main(void)
{
int num1=0, num2=0;
char operation= ' ';

printf("type in expression\n");
scanf("%d %c %d", &num1, &operation, &num2);

switch (operation) {
case '/': {
if(0 == num2) //This is the solution for your issue.
{
printf("\nCan not perform %d/%d", num1, num2);
}
else
{
printf("\n%d / %d=%d", num1, num2, num1/num2);
}
}
break;
case '*': printf("\n%d * %d=%d", num1, num2, num1*num2);
break;
case '-': printf("\n%d - %d=%d", num1, num2, num1-num2);
break;
case '+': printf("\n%d + %d=%d", num1, num2, num1+num2);
break;
default: printf("\nInvalid operation[%c]", operation);
break;
}
return 0;
}

关于c - 浮点异常(核心转储)-c 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40243151/

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