鱼C论坛

 找回密码
 立即注册
查看: 429|回复: 1

求讲解代码

[复制链接]
发表于 2024-1-10 16:50:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <stdio.h>
  2. #include <stdbool.h>

  3. int main()
  4. {
  5.         float op1, op2;
  6.         char ch;
  7.         float result;
  8.         bool invalid = false;

  9.         printf("请输入式子:");
  10.         scanf("%f %c %f", &op1, &ch, &op2);

  11.         switch (ch)
  12.         {
  13.         case '-': op2 = -op2; // no break
  14.         case '+': result = op1 + op2; break;
  15.         case '*': result = op1 * op2; break;
  16.         case '/':
  17.                 if (op2 != 0)
  18.                 {
  19.                         result = op1 / op2;
  20.                         break;
  21.                 }
  22.                 else
  23.                 {
  24.                         invalid = true;
  25.                         break;
  26.                 }
  27.         }

  28.         if (invalid)
  29.         {
  30.                 printf("除数不能为零!\n");
  31.         }
  32.         else
  33.         {
  34.                 printf("结果是:%.2f\n", result);
  35.         }

  36.         return 0;
  37. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-10 16:51:37 | 显示全部楼层
这是一个简单的计算器程序,用户输入两个操作数和一个运算符,程序根据运算符进行相应的运算并输出结果。

首先,程序声明了一些变量。op1和op2是两个操作数,ch是运算符,result是运算结果,invalid是一个标志,用于判断除数是否为零。

然后,程序使用printf函数提示用户输入式子,并使用scanf函数接收用户输入的三个值。这里需要注意,scanf函数中的格式化字符串"%f %c %f"表示依次读取两个浮点数和一个字符。

接下来,程序使用switch语句根据运算符进行不同的操作。如果运算符是'-',则将op2取相反数;如果运算符是'+',则将op1与op2相加赋值给result;如果运算符是'*',则将op1与op2相乘赋值给result;如果运算符是'/',则先判断op2是否为零,如果不为零,则将op1除以op2赋值给result;如果op2为零,则将invalid标志置为true。

最后,程序根据invalid标志判断是否输出除数不能为零的提示信息。如果invalid为true,则输出"除数不能为零!";否则,输出计算结果。

这个程序非常简单直观,输入两个操作数和一个运算符即可得到结果。但需要注意的是,由于涉及到除法运算,必须注意除数不能为零,否则会出现错误。

希望能帮到你!如果有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 21:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表