include <stdio.h> int main() { int a, b; double d = 0, e = 0, g = 0; char c= 0; scanf("%d%d%c", &a, &b, &c); switch (c) { case'+' printf("%d", a + b); break case'-' printf("%d", a - b); break; case'*' printf("%d", a * b); break; case'/' if (a % b == 0) { printf("%d", a / b); } else { d = b; e = a; g = e / d; printf("%.2lf", g); break; default; printf("invalid operator") break; } } return 0; }
时间: 2024-01-06 15:05:31 浏览: 33
这段代码有一些错误和不规范的地方,下面是修改后的代码:
```c
#include <stdio.h>
int main() {
int a, b;
double d = 0, e = 0, g = 0;
char c = 0;
scanf("%d %d %c", &a, &b, &c); // 在 %d 和 %c 之间加上空格
switch (c) {
case '+':
printf("%d", a + b);
break; // 每个 case 后面都要加上 break
case '-':
printf("%d", a - b);
break;
case '*':
printf("%d", a * b);
break;
case '/':
if (b == 0) { // 需要判断除数是否为零
printf("invalid operator");
break;
}
if (a % b == 0) {
printf("%d", a / b);
} else {
d = b;
e = a;
g = e / d;
printf("%.2lf", g);
}
break;
default: // default 也要加上冒号
printf("invalid operator");
break;
}
return 0;
}
```
这段代码实现了一个简单的计算器,可以进行加、减、乘、除四种运算,其中除法运算保留两位小数。在输入时需要保证每个变量之间都有空格,并且操作符也需要单独输入一个字符。在编写代码时需要注意 switch 语句中每个 case 后面都要加上 break,否则会出现意料之外的结果。另外,当除数为零时也需要进行特判。