帮我用 c 语言写一个计算器。要求能够实现加减乘除功能;要求单字符输入,即输入的数字或符号不需要按回车键;3)具有一定的容错能力;4)按回车键或等号键则量示计算结果 5,用 while 语句实现多次运算 6,支持小数运算 7,用到字符串
时间: 2024-03-14 09:47:16 浏览: 48
好的,根据你的要求,以下是一个能够实现加减乘除的计算器,支持单字符输入、小数运算、多次运算和字符串处理。
```c
#include <stdio.h>
#include <string.h>
int main() {
char input[20]; // 输入的字符串
float num1, num2, result;
char op;
while(1) {
printf("请输入计算式,按回车键或等号键结束:\n");
scanf("%s", input); // 读取输入的字符串
if(strcmp(input, "exit") == 0) { // 如果输入exit,则退出程序
printf("程序已退出!\n");
break;
}
if(sscanf(input, "%f%c%f", &num1, &op, &num2) != 3) { // 解析输入的字符串,如果不是三个参数,则输入有误
printf("输入有误,请重新输入!\n");
continue;
}
switch(op) { // 根据运算符进行计算
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if(num2 == 0) {
printf("除数不能为0!\n");
continue;
}
result = num1 / num2;
break;
default:
printf("请输入正确的运算符!\n");
continue;
}
printf("结果为:%.2f\n", result);
}
return 0;
}
```
在这个程序中,我们使用了一个 while 循环来实现多次运算。在每次循环中,我们首先读取输入的字符串,然后使用 sscanf 函数来解析这个字符串,得到两个数字和一个运算符。如果解析出来的参数个数不为三,说明输入有误,程序会提示重新输入。如果第二个数字为0,说明除数为0,程序会提示重新输入。
如果输入的字符串为 "exit",则程序会退出。否则,根据运算符进行计算,并输出结果。
希望对你有用!
阅读全文