可以运行出来但是输入数字后计算错误是怎么回事
#define _CRT_SECURE_NO_WARNINGS
#include
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;
}
scanf 的 double 类型要 %lf ,还有乘法的双引号标错位置了
scanf("%lf %c %lf", &number1, &operation, &number2);
。。。
printf("=%lf\n",number1 * number2);
因为你第9行double用成了float。
scanf("%f %c %lf",......);要改成scanf("%lf %c %lf", &number1, &operation, &number2);
供参考:
#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("%lf %c %lf", &number1, &operation, &number2);
//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);
//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;
}