You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写无任何条件语句的C程序,输入-1输出1535否则输出原值

解决方案

核心思路

利用C语言标准规定的布尔表达式返回值特性:所有相等/关系运算的结果为int类型,表达式成立时返回1,不成立时返回0,通过算术运算即可实现二值选择,不需要任何条件分支语句。

完整代码

#include <stdio.h>

int main() {
    int input;
    scanf("%d", &input);
    int output = (input == -1) * 1535 + (input != -1) * input;
    printf("%d", output);
    return 0;
}

运行逻辑说明

  1. 当输入为-1时:
    • input == -1的结果为1,input != -1的结果为0
    • 最终计算结果为 1 * 1535 + 0 * input = 1535,符合输出要求
  2. 当输入不为-1时:
    • input == -1的结果为0,input != -1的结果为1
    • 最终计算结果为 0 * 1535 + 1 * input = input,直接返回输入原值

该实现完全符合C语言ISO标准,不依赖特定平台的补码特性,没有使用任何题目禁止的条件分支、循环语句,完全满足题目要求。

内容的提问来源于stack exchange,提问作者Noman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 04:00:04