#include "stdio.h" int main() { float x,y; char operate1; printf("Arithmetic expression\n"); /**********ERROR**********/ scanf("%f",&x); /**********ERROR**********/ while(operate1 != '=') { scanf("%f",&y); /**********ERROR**********/ switch(operate1) { case '+': x+=y; break; case '-': x-=y; break; case '*': x*=y; break; case '/': x/=y; break; } } printf("%f",x); return; }
时间: 2023-07-07 19:43:50 浏览: 97
这段代码也存在一些错误:
1. 缺少 `int` 关键字声明 `operate1` 变量;
2. 在 `scanf` 函数中,缺少要求输入的字符操作符;
3. `while` 循环条件中,没有初始化 `operate1` 变量;
4. `switch` 语句中,应该使用 `operate1` 变量来判断输入的字符操作符;
5. 循环中缺少读取字符操作符的语句。
下面是修改后的代码:
```c
#include <stdio.h>
int main() {
float x, y;
char operate1 = '+';
printf("Arithmetic expression\n");
scanf("%f", &x);
while (operate1 != '=') {
scanf("%c%f", &operate1, &y);
switch(operate1) {
case '+':
x += y;
break;
case '-':
x -= y;
break;
case '*':
x *= y;
break;
case '/':
x /= y;
break;
}
}
printf("%f", x);
return 0;
}
```
修改后的代码通过 `scanf` 函数分别读取第一个操作数 `x`,并初始化字符操作符 `operate1` 为 `+`,然后进入 `while` 循环,读取下一个字符操作符 `operate1` 和操作数 `y`,并根据字符操作符 `operate1` 进行相应的计算,直至输入字符操作符 `=` 退出循环,输出计算结果 `x`。
阅读全文