顾安生. 2022-07-26 21:23 采纳率: 0%
浏览 41

代码的运算到底哪错了

问题遇到的现象和发生背景

可以运行出来但是输入数字后计算错误是怎么回事

问题相关代码,请勿粘贴截图

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
double number1 = 0.0;
double number2 = 0.0;
char operation = 0;
printf("\nEnter the calculation\n");
scanf("%f %c %lf", &number1, &operation, &number2);
switch (operation)
{
case '+':
printf("= %lf\n", number1 + number2);
break;
case '-':
printf("=%lf\n", number1 - number2);
break;
case'*':
printf("=%lf\n,number1 * number2");
break;
case '/':
if (number2 == 0)
printf("\n\n\a Division by zero error!\n");
else
printf("=%lf\n", number1 / number2);
break;
case '%':
if ((long)number2 == 0)
printf("\n\n\a Division by zero error!\n");
else
printf(" = % ld\n", (long)number1 % (long)number2);
break;
default:
printf("\n\n\aIllegal operation!\n");
break;
}
return 0;
}

  • 写回答

4条回答 默认 最新

  • superSmart_Dong 2022-07-26 21:36
    关注

    scanf 的 double 类型要 %lf ,还有乘法的双引号标错位置了

    
      scanf("%lf %c %lf", &number1, &operation, &number2);
      。。。
      printf("=%lf\n",number1 * number2);
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月26日