如何优化实现两数和等于第三数判断及整除统计的C程序?
更简洁的C程序实现方案
这里提供简化原程序的具体实现,同时完全保留原有功能:
优化后的代码
#include <stdio.h> int main() { int x, y, z; printf("Enter three integers.\n"); scanf("%d %d %d", &x, &y, &z); // 合并三个条件为一个逻辑表达式 if (x + y == z || x + z == y || y + z == x) { printf("1, 2, 3, 4, 5, 6, 7, 8, 9"); } else { int count = 0; printf("Type in three more integers.\n"); // 复用原有变量,避免额外声明 scanf("%d %d %d", &x, &y, &z); // 利用布尔值的数值特性直接统计数量 count = (x % 6 == 0) + (y % 6 == 0) + (z % 6 == 0); printf("%d integers are divisible by 6.", count); } return 0; }
核心优化点
- 合并条件判断:将三个互斥的分支条件用逻辑或(
||)合并,减少代码重复,逻辑更紧凑。 - 复用变量:第二个分支无需重新定义新变量,直接复用
x,y,z即可,简化变量声明。 - 简化计数逻辑:利用C语言中布尔表达式结果为0(假)或1(真)的特性,直接将三个判断结果相加得到计数,替代三次独立的
if判断。 - 消除冗余代码:原程序中三次重复的打印语句合并为一次,避免代码冗余。
内容的提问来源于stack exchange,提问作者not_castillo
相关产品推荐
相关产品推荐

