已解决。谢谢!
我是 C 编程初学者。我编写了一个简单的计算器代码并且运行良好。这是代码-
#include<stdio.h>
int main() {
char operator;
double firstNumber,secondNumber;
printf("Enter an operator (+, -, *,/): \n");
scanf("%c", &operator);
switch(operator)
{
case '+':
printf("Enter two numbers: ");
scanf("%lf %lf",&firstNumber, &secondNumber);
printf("%.2f + %.2f = %.2f",firstNumber, secondNumber, firstNumber + secondNumber);
break;
case '-':
printf("Enter two numbers: ");
scanf("%lf %lf",&firstNumber, &secondNumber);
printf("%.2f - %.2f = %.2f",firstNumber, secondNumber, firstNumber - secondNumber);
break;
case '*':
printf("Enter two numbers: ");
scanf("%lf %lf",&firstNumber, &secondNumber);
printf("%.2f * %.2f = %.2f",firstNumber, secondNumber, firstNumber * secondNumber);
break;
case '/':
printf("Enter two numbers: ");
scanf("%lf %lf",&firstNumber, &secondNumber);
printf("%.2f / %.2f = %.2f",firstNumber, secondNumber, firstNumber / secondNumber);
break;
default:
printf("Error! operator is not correct.\n");
}
return 0;
}
我希望如果用户输入错误的运算符,则程序不会结束而是返回到开头。知道如何做吗? 谢谢。
最佳答案
我创建了一个包含有效运算符的字符数组,在切换条件结束时我们检查其运算符是否有效,如果不是,则会要求用户再次输入运算符:
# include<stdio.h>
# include <string.h>
int main()
{
char operator;
double firstNumber, secondNumber;
char operators[] = "-+*/";
bool isOperator = false;
while (!isOperator)
{
printf("Enter an operator (+, -, *,/): \n");
scanf("%c", &operator);
switch (operator)
{
case '+':
printf("Enter two numbers: ");
scanf("%lf %lf", &firstNumber, &secondNumber);
printf("%.2f + %.2f = %.2f", firstNumber, secondNumber, firstNumber + secondNumber);
break;
case '-':
printf("Enter two numbers: ");
scanf("%lf %lf", &firstNumber, &secondNumber);
printf("%.2f - %.2f = %.2f", firstNumber, secondNumber, firstNumber - secondNumber);
break;
case '*':
printf("Enter two numbers: ");
scanf("%lf %lf", &firstNumber, &secondNumber);
printf("%.2f * %.2f = %.2f", firstNumber, secondNumber, firstNumber * secondNumber);
break;
case '/':
printf("Enter two numbers: ");
scanf("%lf %lf", &firstNumber, &secondNumber);
printf("%.2f / %.2f = %.2f", firstNumber, secondNumber, firstNumber / secondNumber);
break;
default:
printf("Error! operator is not correct.\n");
}
char* res;
res = strchr(operators,operator);
if (res != NULL)
{
isOperator = true;
}
else
{
isOperator = false;
}
}
return 0;
}
关于C计算器代码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50621884/