C语言不使用数组或循环能否实现4个输入数的负数求和功能?
问题解答
一、是否可以通过数学公式实现?
可以,因为输入固定为4个数值,无需遍历逻辑,直接借助取最小函数即可构造纯数学计算式:
假设4个输入值分别为a、b、c、d,负数求和的公式为:
min(a, 0) + min(b, 0) + min(c, 0) + min(d, 0)
公式逻辑为:对每个数值,若它为负则取自身参与求和,若为正则取0不影响总和,完全不需要循环、数组相关知识。
代入示例输入验证:min(-30.22, 0) + min(10.50, 0) + min(-2.2, 0) + min(-1.8, 0) = -30.22 + 0 + (-2.2) + (-1.8) = -34.22,和要求的输出一致。
二、是否可以用if-else、elseif语句完成?
可以,而且实现逻辑非常简单,因为输入只有固定4个值,逐个判断是否为负数、累加到总和即可,不需要用到elseif,直接用独立的if判断即可,伪代码示例如下:
// 初始化总和为0 sum = 0 // 依次输入4个数值 input num1 input num2 input num3 input num4 // 逐个判断是否为负数,是则累加 if num1 < 0: sum = sum + num1 if num2 < 0: sum = sum + num2 if num3 < 0: sum = sum + num3 if num4 < 0: sum = sum + num4 // 输出结果 print(sum)
代入示例输入运行后,最终sum值就是-34.22,符合需求。
内容的提问来源于stack exchange,提问作者Charles
相关产品推荐
相关产品推荐

