用包含变量x的一个表达式实现:x>0时结果为1,x=0结果为0,不要条件判断

问题描述

用包含变量x的一个表达式实现:x>0时结果为1,x=0结果为0,不要条件判断

用包含变量x的一个表达式实现:x>0时结果为1,x=0结果为0,不要条件判断。
可使用任意数学函数

解决方案

?:当然是最容易想到的,但是这种回答没有任何帮助到你,肯定你也知道。

 不知道什么语言,VB有Sign函数,>0返回1,=0返回0,<0返回-1

C++可以用 (int)(x > 0),原理是x>0返回true,转换成int是1

 #include <iostream>
using namespace std;
int main()
{
    cout << (int)(6 > 0);
}

解决方案二:

我觉得可以除以一个最大的数向上取整

解决方案三:

x = (bool)x & x; 这个可以,如果非要不用判断的话

解决方案四:

?;运算符可以搞定,x > 0 ? 1 : 0

解决方案五:

x > 0 ? '1' : '0'

解决方案六:

这个表达式叫三目运算符

解决方案七:

那就三目运算符呗;
x = x>0?1:0;

解决方案八:

楼上的结果是bool型,用异或吧,与0异或,相同的就是0,不同的都是1也就是不等0的数

解决方案九:

三目运算 就不算条件判断了? 我觉得得知道出这题目的人到底是想要考什么

解决方案十:

用三元运算符,就是一个缩小版的if-else

时间: 2024-11-02 05:31:45

用包含变量x的一个表达式实现:x&amp;gt;0时结果为1,x=0结果为0,不要条件判断的相关文章

c++-一个简单的C++练习,运行时显示“vector iteration incompatible&amp;amp;quot;。

问题描述 一个简单的C++练习,运行时显示"vector iteration incompatible". array ar = { 0 1 1 2 3 5 8 13 21 55 89 }; vector vec(ar.begin() ar.end()); auto it = vec.begin(); while (it != vec.end()) { if (*it % 2) vec.erase(it); else it++; } for (auto i : vec) cout &l

java当中一个类必须包含变量,方法,对象吗

问题描述 java当中一个类必须包含变量,方法,对象吗 可不可以单单有方法 单单有变量 java当中一个类必须包含变量,方法,对象吗 单单有对象 解决方案 不是的.一般的java类是有属性和方法的,比如实体类,有该实体的属性,和对应的get/set方法.有些业务类只有方法.根据需要只有组合. 解决方案二: java 对象使用类变量与方法(小笔记)java 当中变量存储位置的区别java中一个类想调用另一个类的变量 解决方案三: 没有这些说法,可以任意组合 解决方案四: 一个类里面什么都没有都可以

为什么逗号表达式返回最后一个表达式的结果?--从另一个角度看C++

auto v = func1(), func2(), func3(); 因为一个函数调用是要经过参数压栈,调用完了,还有退栈(栈清理)的过程. 而这个退栈的工作可以由调用者或者被调用者来进行,因此也分为两种不同的调用约定: __cdecl和_stdcall,当然这个扯远了.要是再扯远点,还有利用寄存器,省去压栈的fastcall和C++特有的thiscall.正因为函数调用是一个不断地入栈出栈的过程,所以逗号表达式返回的是最后一个表达式的结果. 否则,假定是返回第一个表达式的结果,那这个结果存放

linux shell脚本 两个变量中间有一个/ 一起输出时前面的变量出不来

问题描述 linux shell脚本 两个变量中间有一个/ 一起输出时前面的变量出不来 配置文件config.txt 内容为: abc=/home/test 计划在shell脚本中获取等号后面的路径,shell脚本如下; #!/bin/bash var=`grep abc /home/test/config.txt` #获取abc开头的一行 echo $var put_path=${put_line##*=} #截取等号后面路径 echo "${put_path}/1.txt" 可以获

c程序设计-C语言截结构体指针中的变量又是另一个结构体指针,怎么用,代码运行不了

问题描述 C语言截结构体指针中的变量又是另一个结构体指针,怎么用,代码运行不了 #include #include #include #include #define LIST_INIT_SIZE 100//线性表存储空间的初始分配量 #define LISTINCREMENT 10//线性表存储空间的分配增量 typedef struct { int No; char name[10]; }Student; typedef struct { Student *elem;//存储空间基址 int

数据库怎么设计一个房间包含多个用户,一个用户又可以归属多个房间

问题描述 数据库怎么设计一个房间包含多个用户,一个用户又可以归属多个房间 对数据库也不是很懂,请教!!! 数据库怎么设计一个房间包含多个用户,一个用户又可以归属多个房间 解决方案 这就是多对多关系嘛.两个表各自有一个主键,有一个外键.然后关联起来. 再不会,随便找一个数据库,比如northwind,里面就有,看一下. 解决方案二: 楼上说的很对,多对多关系 解决方案三: 建三张表,房间表,用户表,中间表.建他们的主键放在中间表关联起来.

java-Java 中一个类定义的一个静态变量 被另一个类使用时 这个静态变量必须有值吗?

问题描述 Java 中一个类定义的一个静态变量 被另一个类使用时 这个静态变量必须有值吗? Java 中一个类定义的一个静态变量 被另一个类使用时 这个静态变量必须有值吗? 解决方案 可以没有值,但建议赋初始值.静态变量在类加载的时候会执行初始化操作,如果没有显式赋值,则会初始化为默认值,比如int型的就是0,bool类型的就是false,如果是对象的话,就是null,其它类调用时如果没有显式赋初始值,有可能导致逻辑问题,比如空指针异常等等. 解决方案二: Can be no value, bu

在c#中,怎么把一个表达式,变成一个支算式.

问题描述 我怎样把一个表达式比如"8*5"运算成8*5啊,有没有这样的方法 解决方案 解决方案二:解析表达式.通过堆栈实现.解决方案三:引用1楼KillerAwp的回复: 解析表达式.通过堆栈实现. 解决方案四:我也知道,我需要具体解决方案,代码能给发过来不?解决方案五:最简单的,不需要自己编计算模块的就是使用DataTable.Compute方法.解决方案六:引用4楼null1的回复: 最简单的,不需要自己编计算模块的就是使用DataTable.Compute方法. 这个强!不过的确

【转载】shell中的条件判断、参数以及变量替换

[test 命令]       test 命令是 shell 的内部命令,用于计算作为其参数的表达式是真还是假. 如果表达式为真,则 test 返回0(注意与 C 语言 0 表示 false 不同),如果表达式为假,返回非 0 .       shell 提供了另外一个调用 test 命令的方式,就是用方括号 [ ] 来代替单词 test .       调用 test 命令的格式为:  ? 1 2 test expr1 opr expr2 或是 [ expr1 opr expr2 ] test