编程题:输入一个形式如“操作数 运算符 操作数”的四则运算表达式,输出运算结果。
【输入形式】“操作数 运算符 操作数”,三者直接没有任何符号,操作数可以是整数或小数,运算符为“+ - * /”共4种情况,若为其他运算符,则不计算,直接输出“无效运算符”
把题目好好放出来看
你现在的问题应该是输出的位数和要求的不一致
d变量你申明了没有使用,删掉它
供参考:
#include <stdio.h>
#include <string.h>
void plus(double a, double b)
{
printf("%g + %g = %.2f\n", a, b, a + b);
}
void minus(double a, double b)
{
printf("%g - %g = %.2f\n", a, b, a - b);
}
void multiply(double a, double b)
{
printf("%g * %g = %.2f\n", a, b, a * b);
}
void divide(double a, double b)
{
printf("%g / %g = %.2f\n", a, b, a / b);
}
int main(void)
{
int ret;
char in[64] = { 0 }, x[16], y[16], op[10];
double a, b;//参加运算的两个数
gets(in);//输入算式
ret = sscanf(in, "%[0-9.] %[^0-9. ] %[0-9.]", x, op, y);
if (ret == 3) {
sscanf(x, "%lf", &a);
sscanf(y, "%lf", &b);
if (strcmp(op, "+") == 0) plus(a, b);
else if (strcmp(op, "-") == 0) minus(a, b);
else if (strcmp(op, "*") == 0) multiply(a, b);
else if (strcmp(op, "/") == 0 && b != 0) divide(a, b);
else printf("无效运算符\n");
}
return 0;
}