需要编写一个像整数计算器一样的程序
Need to write a program acts like an integer calculator
CS新,C语言新。请帮助程序需要支持所有 +、-、*、/、% 函数和 return 用户输入方程的结果。该程序应该不断接受新的输入,直到用户输入一个空行。并且不应打印除方程式结果之外的任何输出。
例如输入和输出:
8 + 2(输入)- 用户输入
10 - 输出
8 - 2(输入)- 用户输入
6 - 输出
(enter) - 用户输入(程序终止)
提供的提示是使用 gets() 和 sscanf() 从用户那里获取输入。
#include <stdio.h>
int main()
{
char equation[10];
int x, y, result;
char eqsign[2];
int switchnum;
gets(equation);
sscanf(equation, "%d %s %d", &x, eqsign, &y);
if (eqsign == '+')
switchnum = 0;
else if (eqsign == '-')
switchnum = 1;
else if (eqsign == '*')
switchnum = 2;
else if (eqsign == '/')
switchnum = 3;
else if (eqsign == '%')
switchnum = 4;
while(equation != "[=10=]")
{
switch(switchnum)
case '0':
result = x + y;
printf("%d", result);
break;
case '1':
result = x - y;
printf("%d", result);
break;
case '2':
result = x * y;
printf("%d", result);
break;
case '3':
result = x / y;
printf("%d", result);
break;
case '4':
result = x % y;
printf("%d", result);
break;
}
return 0;
}
我现在的代码运行不对,请大家用C给个建议!关于如何比较操作员表单输入有很多问题。如有任何帮助,我们将不胜感激!
因为运算符是一个字符,所以没有必要把它做成一个字符串。此外,不需要 switchnum
,因为您可以直接在运算符值上切换。
#include <stdio.h>
int main()
{
char equation[22];
int x, y, result;
char operator;
if (!fgets(equation,sizeof(equation),stdin)) {
perror("Reading equation");
return -1;
}
if (sscanf(equation, "%d %c %d", &x, &operator, &y) != 3) {
fprintf(stderr,"Invalid equation!\n");
return -2;
}
switch(operator) {
case '+':
result = x + y;
break;
case '-':
result = x - y;
break;
case '*':
result = x * y;
break;
case '/':
result = x / y;
break;
case '%':
result = x % y;
break;
default:
fprintf(stderr,"Invalid operator '%c'!\n",operator);
return -3;
}
printf("%d", result);
return 0;
}
CS新,C语言新。请帮助程序需要支持所有 +、-、*、/、% 函数和 return 用户输入方程的结果。该程序应该不断接受新的输入,直到用户输入一个空行。并且不应打印除方程式结果之外的任何输出。
例如输入和输出:
8 + 2(输入)- 用户输入
10 - 输出
8 - 2(输入)- 用户输入
6 - 输出
(enter) - 用户输入(程序终止)
提供的提示是使用 gets() 和 sscanf() 从用户那里获取输入。
#include <stdio.h>
int main()
{
char equation[10];
int x, y, result;
char eqsign[2];
int switchnum;
gets(equation);
sscanf(equation, "%d %s %d", &x, eqsign, &y);
if (eqsign == '+')
switchnum = 0;
else if (eqsign == '-')
switchnum = 1;
else if (eqsign == '*')
switchnum = 2;
else if (eqsign == '/')
switchnum = 3;
else if (eqsign == '%')
switchnum = 4;
while(equation != "[=10=]")
{
switch(switchnum)
case '0':
result = x + y;
printf("%d", result);
break;
case '1':
result = x - y;
printf("%d", result);
break;
case '2':
result = x * y;
printf("%d", result);
break;
case '3':
result = x / y;
printf("%d", result);
break;
case '4':
result = x % y;
printf("%d", result);
break;
}
return 0;
}
我现在的代码运行不对,请大家用C给个建议!关于如何比较操作员表单输入有很多问题。如有任何帮助,我们将不胜感激!
因为运算符是一个字符,所以没有必要把它做成一个字符串。此外,不需要 switchnum
,因为您可以直接在运算符值上切换。
#include <stdio.h>
int main()
{
char equation[22];
int x, y, result;
char operator;
if (!fgets(equation,sizeof(equation),stdin)) {
perror("Reading equation");
return -1;
}
if (sscanf(equation, "%d %c %d", &x, &operator, &y) != 3) {
fprintf(stderr,"Invalid equation!\n");
return -2;
}
switch(operator) {
case '+':
result = x + y;
break;
case '-':
result = x - y;
break;
case '*':
result = x * y;
break;
case '/':
result = x / y;
break;
case '%':
result = x % y;
break;
default:
fprintf(stderr,"Invalid operator '%c'!\n",operator);
return -3;
}
printf("%d", result);
return 0;
}