不枉风来水顺 发表于 2023-9-28 12:25:13

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。

我不会搞那个操作符的输入和正确输出

isdkz 发表于 2023-9-28 12:25:27

题目描述:实现一个表达式求值程序,输入为两个整数和一个操作符,输出为两个整数通过该操作符计算的结果。

输入格式:输入只有一行,依次为整数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. 除法操作符为/,取模操作符为%。

Mike_python小 发表于 2023-9-28 12:26:16

问题求助

根据你的描述,你需要编写一个程序来计算两个整数之间的表达式结果,并在输出中显示操作符和等号。

以下是一个示例的代码,用于解析输入并计算表达式结果:

++
#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]
查看完整版本: C的困难