C的困难
表达式求值。注意:输入输出中的空格
输入格式:
只有一行,依次为整数a、操作符op、和整数b,a、op、b中间有一个空格分隔。其中-10000<a,b<10000,操作符op为“+”、“-”、“*”、“/”、和“%”之一。。
输出格式:
只有一行,为a、b两个数通过op的计算结果。比如,输入为“1 + 2”,则计算1和2的和并输出“1 + 2 = 3”。
注意:当操作符op为“/”或“%”,且b为0时,算式无效,此时,程序输出一个单词:Invalid。
我不会搞那个操作符的输入和正确输出 题目描述:实现一个表达式求值程序,输入为两个整数和一个操作符,输出为两个整数通过该操作符计算的结果。
输入格式:输入只有一行,依次为整数a、操作符op、和整数b,a、op、b中间有一个空格分隔。
输出格式:只有一行,为a、b两个数通过op的计算结果。比如,输入为“1 + 2”,则计算1和2的和并输出“1 + 2 = 3”。如果操作符op为“/”或“%”,且b为0时,算式无效,此时,程序输出一个单词:Invalid。
思路:根据输入的操作符op,对a和b进行相应的计算,然后输出结果。
代码实现:
#include <stdio.h>
int main()
{
int a, b;
char op;
scanf("%d %c %d", &a, &op, &b);// 输入a、op、b
if (op == '+')// 加法
printf("%d + %d = %d", a, b, a + b);
else if (op == '-')// 减法
printf("%d - %d = %d", a, b, a - b);
else if (op == '*')// 乘法
printf("%d * %d = %d", a, b, a * b);
else if (op == '/')// 除法
{
if (b == 0)// 如果除数为0,输出Invalid
printf("Invalid");
else
printf("%d / %d = %d", a, b, a / b);
}
else if (op == '%')// 取模
{
if (b == 0)// 如果除数为0,输出Invalid
printf("Invalid");
else
printf("%d %% %d = %d", a, b, a % b);
}
return 0;
}
注意事项:
1. 在输入时,需要加上空格,例如:1 + 2。
2. 在输出时,需要注意除法和取模操作时除数为0的情况,需要输出Invalid。
3. 除法操作符为/,取模操作符为%。 问题求助
根据你的描述,你需要编写一个程序来计算两个整数之间的表达式结果,并在输出中显示操作符和等号。
以下是一个示例的代码,用于解析输入并计算表达式结果:
++
#include <stdio.h>
int main() {
int a, b;
char op;
scanf("%d %c %d", &a, &op, &b);
switch (op) {
case '+':
printf("%d + %d = %d\n", a, b, a + b);
break;
case '-':
printf("%d - %d = %d\n", a, b, a - b);
break;
case '*':
printf("%d * %d = %d\n", a, b, a * b);
break;
case '/':
if (b == 0) {
printf("Invalid\n");
} else {
printf("%d / %d = %d\n", a, b, a / b);
}
break;
case '%':
if (b == 0) {
printf("Invalid\n");
} else {
printf("%d %% %d = %d\n", a, b, a % b);
}
break;
default:
printf("Invalid operator\n");
}
return 0;
}
这段代码首先使用 scanf 函数按照格式读取输入的整数和操作符。然后,使用 switch 语句根据操作符执行相应的计算操作,并输出结果。对于除法和取模操作,我们需要检查除数是否为零,如果是零则输出 "Invalid"。
希望这个回答对你有帮助!如果还有其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页:
[1]