求两个数中最大值,不用判断语句

#include "iostream.h"
#include "math.h"

#define bits ( sizeof( int ) * 8 - 1 )
static int CheckFlag( int x, int y )
{
int s1 = x >> bits;
int s2 = y >> bits;
s1=abs(s1);
s2=abs(s2);
return ( s1 * 2 + s2 );
}
static int SameSign( int Flag, int x, int y )
{
int t[2] = { x, y };
long z = x - y;
int s = z >> (bits+32);
s=abs(s);
return t[s];
}
static int DiffSign(int Flag,int x,int y) 比较
{
int t[2] = { x, y };
return t[Flag - 1];
}
static int (*FuncList[4])(int Flag,int x,int y)={SameSign, DiffSign, DiffSign, SameSign};
static int Max( int x, int y )
{
int Flag = CheckFlag( x, y );

return (*FuncList[Flag])(Flag,x,y);
}
void main()
{
int x,y,z;
cout<<"请输入整型x的值(-32768~32767):";
cin>>x;
cout<<"请输入整型y的值(-32768~32767):";
cin>>y;
z=Max(x,y);
cout<<"最大的数:"<<z<<endl;
}

#define bits ( sizeof( int ) * 8 - 1 ) //移动的位数

static int SameSign( int Flag, int x, int y ) //函数功能:x,y同号时的比较

static int DiffSign(int Flag,int x,int y) //函数功能:x,y异号时的比较

static int (*FuncList[4])(int Flag,int x,int y)={SameSign, DiffSign, DiffSign, SameSign}; //定义函数指针数组

static int Max( int x, int y ) //函数功能:求最大值

static int CheckFlag( int x, int y ) //函数功能:检测x,y的符号

/*
Flag 的值
+ +:0
- +;1
+ 1:2
- -:3
*/

时间: 2024-10-30 18:29:41

求两个数中最大值,不用判断语句的相关文章

求两个数中的较大值max(a,b)。(不用if,&gt;)

题目:求两个数的较大值,不能使用if.>. 1.不使用if.>,还要比较大小,貌似就只能使用条件表达式: x=<表达式1>?<表达式2>:<表达式3>; (表达式1为true时,返回表达式2:否则返回表达式3)   2. 本题目中使用条件表达式: max(a.b)=<表达式1>? b:a; (表达式1为true时,返回b:否则返回a)   3.如何写表达式1,区分a与b的大小.(不用>) 可以使用位运算,判断a-b的符号位.符号位为1(负数

JavaScript中的条件判断语句使用详解

这篇文章主要介绍了JavaScript中的条件判断语句使用详解,是JS入门学习中的基础知识,需要的朋友可以参考下 在写一个程序,可能有一种情况,当你需要采用一个路径出给定两个路径.所以,需要使用条件语句,让程序来做出正确的决策和执行正确的行动. JavaScript支持其用于执行根据不同的条件不同的操作条件语句.在这里,我们将解释if..else语句. JavaScript支持if..else语句的形式如下: if 语句 if...else 语句 if...else if... 语句. if 语

算法 数据结构-求两个数最大公约数,欧几里得算法

问题描述 求两个数最大公约数,欧几里得算法 求两个数最大公约数,欧几里得算法,这两种方法除第一种可以避免除数为零的情况,两者有什么区别?谢谢 public static int gcd(int p, int q) { if (q == 0) return p; int r = p % q; return gcd(q, r) ; } public static int gcd(int p, int q) { int r = p % q; if (r == 0) return q; return g

详解Python中的条件判断语句

  这篇文章主要介绍了Python中的条件判断语句,是Python入门中的基础知识,需要的朋友可以参考下 一个else语句可以使用if语句结合起来.如果在if语句中的条件表达式解析为0或false值,那么else语句包含代码执行. else语句是可选的声明,并if语句下面最多只有一个else语句. 语法: if ... else语句的语法是: ? 1 2 3 4 if expression: statement(s) else: statement(s) 例子: ? 1 2 3 4 5 6 7

c-用C语言实现在键盘输入两个十进制数,然后在屏幕输出这两个数中较大的那个数

问题描述 用C语言实现在键盘输入两个十进制数,然后在屏幕输出这两个数中较大的那个数 我是这样写的: #include #include void main() { scanf("%d,%d",&a,&a,&b); c=max(a,b); print("max=%d",c); return 0; } 可是怎么就不对了呢?想不明白..啊-- 解决方案 1;如wolf所说,多一个&a,多return 0; 2;a,b,c没定义 3;我记得标

jsf-JSF如果不用判断语句控制按钮的动态显示,用什么方式?

问题描述 JSF如果不用判断语句控制按钮的动态显示,用什么方式? 比如CRUD当我需要新增的时候,按钮显示新增.当我是UPDATE的时候,按钮显示保存. 按以往都是IF语句判断,显示按钮的值,现在用JSF用什么方式,听说没有判断标签,也不提倡使用.所以求教了.

JavaScript使用Math.Min返回两个数中较小数的方法_javascript技巧

本文实例讲述了JavaScript使用Math.Min返回两个数中较小数的方法.分享给大家供大家参考.具体如下: 下面JavaScript通过Math.Min返回两个数中较小的那个 <!DOCTYPE html> <html> <body> <p id="demo"> Click the button to return the lowest number of 5 and 10. </p> <button onclic

JavaScript中的条件判断语句使用详解_基础知识

 在写一个程序,可能有一种情况,当你需要采用一个路径出给定两个路径.所以,需要使用条件语句,让程序来做出正确的决策和执行正确的行动. JavaScript支持其用于执行根据不同的条件不同的操作条件语句.在这里,我们将解释if..else语句. JavaScript支持if..else语句的形式如下:     if 语句     if...else 语句     if...else if... 语句. if 语句: if语句是基本的控制语句,它允许JavaScript来作出决定,有条件地执行语句.

详解C语言求两个数的最大公约数及最小公倍数的方法_C 语言

求两个正整数的最大公约数       思路:这是一个很基本的问题,最常见的就是两种方法,辗转相除法和辗转相减法.通式分别为 f(x, y) = f(y, x%y), f(x, y) = f(y, x - y) (x >=y > 0).根据通式写出算法不难,这里就不给出了.这里给出<编程之美>上的算法,主要是为了减少迭代的次数.      对于x和y,如果y = k * y1, x= k * x1,那么f(x, y) = k * f(x1, y1).另外,如果x = p * x1,假