C语言实战之逻辑运算符计算器

C语言实战之逻辑运算符计算器在 C 语言中 我们可以编写一个简单的逻辑运算符计算器 支持基本的逻辑运算 如 AND OR NOT XOR 等 以下是一个示例程序 用户可以输入两个布尔值 0 或 1 和一个逻辑运算符 程序会输出计算结果 示例代码 include lt

大家好,欢迎来到IT知识分享网。

在C语言中,我们可以编写一个简单的逻辑运算符计算器,支持基本的逻辑运算(如 AND、OR、NOT、XOR 等)。以下是一个示例程序,用户可以输入两个布尔值(0 或 1)和一个逻辑运算符,程序会输出计算结果。


示例代码

#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int a, b; char operator[10]; // 提示用户输入两个布尔值 printf("请输入两个布尔值 (0 或 1): "); scanf("%d %d", &a, &b); // 提示用户输入逻辑运算符 printf("请输入逻辑运算符 (AND, OR, NOT, XOR): "); scanf("%s", operator); // 根据运算符执行相应的逻辑运算 if (strcmp(operator, "AND") == 0) { printf("结果: %d AND %d = %d\n", a, b, a && b); } else if (strcmp(operator, "OR") == 0) { printf("结果: %d OR %d = %d\n", a, b, a || b); } else if (strcmp(operator, "NOT") == 0) { printf("结果: NOT %d = %d\n", a, !a); printf("结果: NOT %d = %d\n", b, !b); } else if (strcmp(operator, "XOR") == 0) { printf("结果: %d XOR %d = %d\n", a, b, a ^ b); } else { printf("错误:无效的逻辑运算符!\n"); return EXIT_FAILURE; } return 0; }

代码说明

  1. 变量定义
  • a 和 b:存储用户输入的两个布尔值(0 或 1)。
  • operator:存储用户输入的逻辑运算符(如 AND、OR、NOT、XOR)。
  1. 逻辑运算
  • 使用 strcmp 函数比较用户输入的运算符,并执行相应的逻辑运算:
  • AND:a && b
  • OR:a || b
  • NOT:!a 和 !b
  • XOR:a ^ b
  1. 输出结果
  • 使用 printf 输出计算结果。

编译和运行

  1. 将代码保存为 logic_calculator.c。
  2. 使用以下命令编译:
gcc logic_calculator.c -o logic_calculator
  1. 运行程序:
./logic_calculator
  1. 按照提示输入布尔值和逻辑运算符,程序会输出计算结果。

示例运行

输入:

请输入两个布尔值 (0 或 1): 1 0 请输入逻辑运算符 (AND, OR, NOT, XOR): XOR

输出:

结果: 1 XOR 0 = 1

注意事项

  1. 输入验证
  • 程序假设用户输入的布尔值是 0 或 1。如果需要更强的健壮性,可以添加输入验证逻辑。
  1. 运算符大小写
  • 运算符名称是大小写敏感的(如 AND 必须大写)。如果需要支持大小写不敏感,可以使用 strcasecmp 函数(需要包含 <strings.h>)。
  1. 扩展功能
  • 可以扩展程序以支持更多的逻辑运算符(如 NAND、NOR、XNOR 等)。
  • 可以支持连续计算(如循环输入布尔值和运算符)。

扩展:支持大小写不敏感的运算符

  • 以下是一个扩展版本,支持大小写不敏感的运算符输入:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> // 用于 strcasecmp int main() { int a, b; char operator[10]; printf("请输入两个布尔值 (0 或 1): "); scanf("%d %d", &a, &b); printf("请输入逻辑运算符 (AND, OR, NOT, XOR): "); scanf("%s", operator); if (strcasecmp(operator, "AND") == 0) { printf("结果: %d AND %d = %d\n", a, b, a && b); } else if (strcasecmp(operator, "OR") == 0) { printf("结果: %d OR %d = %d\n", a, b, a || b); } else if (strcasecmp(operator, "NOT") == 0) { printf("结果: NOT %d = %d\n", a, !a); printf("结果: NOT %d = %d\n", b, !b); } else if (strcasecmp(operator, "XOR") == 0) { printf("结果: %d XOR %d = %d\n", a, b, a ^ b); } else { printf("错误:无效的逻辑运算符!\n"); return EXIT_FAILURE; } return 0; }

改进点:

  1. 大小写不敏感
  • 使用 strcasecmp 函数比较运算符名称,支持大小写不敏感的输入(如 and、Or、not 等)。

扩展:支持连续计算

以下是一个扩展版本,支持用户连续输入布尔值和运算符,直到用户选择退出:

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> int main() { int a, b; char operator[10]; char response; while (1) { printf("请输入两个布尔值 (0 或 1): "); scanf("%d %d", &a, &b); printf("请输入逻辑运算符 (AND, OR, NOT, XOR) 或 q 退出: "); scanf("%s", operator); if (strcasecmp(operator, "q") == 0) { break; } if (strcasecmp(operator, "AND") == 0) { printf("结果: %d AND %d = %d\n", a, b, a && b); } else if (strcasecmp(operator, "OR") == 0) { printf("结果: %d OR %d = %d\n", a, b, a || b); } else if (strcasecmp(operator, "NOT") == 0) { printf("结果: NOT %d = %d\n", a, !a); printf("结果: NOT %d = %d\n", b, !b); } else if (strcasecmp(operator, "XOR") == 0) { printf("结果: %d XOR %d = %d\n", a, b, a ^ b); } else { printf("错误:无效的逻辑运算符!\n"); } printf("是否继续?(y/n): "); scanf(" %c", &response); if (response != 'y' && response != 'Y') { break; } } printf("程序已退出。\n"); return 0; }

改进点:

  1. 循环计算
  • 使用 while 循环支持连续计算,直到用户输入 q 退出。
  1. 退出功能
  • 如果用户输入 q,程序会退出循环并结束运行。

这个版本更适合实际使用,用户可以多次进行计算,直到选择退出。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/170849.html

(0)
上一篇 2025-02-20 12:25
下一篇 2025-02-20 12:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信