求一个类型的最大值和最小值

#include <stdio.h>
#include <limits.h>

#define MYMAX(T)  \
    (- ( ( 1<< ( sizeof ( T ) * 8 - 1 ) ) + 1))
#define MYMIN(T) \
    (1 << ( sizeof ( T ) * 8 - 1 ))

int main(int argc, char const *argv[])
{

    printf("%d\n", - ( ( 1<< ( sizeof ( int ) * 8 - 1 ) ) + 1));
    printf("%d\n", INT_MAX);
    printf("%d\n", 1 << ( sizeof ( int ) * 8 - 1 ));
    printf("%d\n", INT_MIN);

    printf("%d\n", MYMAX(int));
    printf("%lld\n", MYMAX(long long ));
    printf("%d\n", MYMIN(int));

    return 0;
}
时间: 2024-10-16 14:33:21

求一个类型的最大值和最小值的相关文章

java实现求一个数组里最大值和最小值之前缺省的数的算法

问题描述: 求一个数组里最大值和最小值之间缺省的数,例如 int arrDemo = {1, 3, 7};  那么就要输出最小值1和最大值7之间缺少的数字2,4,5,6 代码如下,有更好的思路欢迎大家在评论区留言讨论 1 package test; 2 3 public class Test { 4 5 static int[] array = { 6 -10,0,3,3,9 7 }; 8 9 private static void printEmptyItems(int[] array) {

求一个数组中最大值与最小值

#include <stdio.h> int main() { int array[10]={100,1,40,29,45,22,98,2,83,75}; int max=array[0];//将第一个元素赋值给max int min=array[0];//将第一个元素赋值给min int i; for(i=1;i<10;i++)//通过循环访问剩下的9个数组元素 { if(max<array[i])//将max与剩下的元素比较大小,将比max大的元素赋值给max max=arra

写一个方法求数组中的最大值,最小值,总和以及平均值。

class Program { /// <summary> /// 求数组中的最大值,最小值,总和以及平均值. /// </summary> /// <param name="nums">输入一个数组</param> /// <returns>返回一个新的数组(max,min,sum,avg)</returns> public static int[] GetMaxMinSumAvg(int[] nums) { i

分治递归:求数组元素的最大值,最小值

//分治递归,求数组元素的最大值,最小值 /** * 保存产生的最大值,最小值 * @author Administrator * */ public class Values { private int max; private int min; public Values(int max,int min){ this.max=max; this.min=min; } public int getMax() { return max; } public void setMax(int max)

求数组所有区间最大值减去最小值之差的和(贝壳笔试题)

这个题直接暴力求解的话时间复杂度肯定是不行的,所以,我们要计算每个数值的贡献,对每一个数求他当最小值当了多少次,当最大值当了多少次,最后当最大值的次数乘以这个数值减去当最小值的次数乘以数值就得到这个数的贡献,依次把这n个数的贡献加起来就是整个极差之和. 在计算一个数当了多少最值的时候,我们要理解问题,因为区间是连续的,所以,以最小值为例,如果一个数是当前这段区间的最小值,那么他一定是当前这段区间最小的(这不废话),所以,我们就找到他往左做多能找到多少个连续的数都比他大,记录这个位置,同理找他右边

位运算求两数的最大值与最小值

1.最小值:(y^(x^y)&-(x<y)). 2.最大值:(y^(x^y)&(x<y-1))或(x^(x^y)&-(x<y)).

求集合中的最大值和最小值

BigDecimal bd1 = new BigDecimal(668); BigDecimal bd2 = new BigDecimal(300); BigDecimal bd3 = new BigDecimal(115.5); List<BigDecimal>list = new ArrayList<BigDecimal>(); list.add(bd1); list.add(bd2); list.add(bd3); //最小值 System.out.println(Colle

springboot~为Money类型添加最大值和最小值的注解校验

在spring框架里,为我们集成了很多校验注解,直接在字段上添加对应的注解即可,这些注解基本都是简单保留类型的,即int,long,float,double,String等,而如果你自己封装了新的类,那么如果要校验它,注解这块需要自己写一下,像money这个类型,如果希望对它进行校验,注解这块需要自己去写. 普通类型的注解校验 /** * 编号. */ @NotBlank(message = "部门编号不能为空.") private String code; /** * 名称. */

求数组的最大值和最小值

求数组的最大最小值,可以遍历一遍数组,然后分别记录最大值和最小值,这种方法需要的比较次数为2N次.如果想要减少比较次数,可以采用的方法是遍历数组,然后比较相邻元素,把相邻元素的较大值放在后面,较小的放在前面.在从较大值中选取最大值即为整个数组的最大值,从较小值中选取最小值即为整个数组的最小值.这时,需要的比较次数为1.5*N次. void findmaxmin(int a[],int n) { if(a==NULL||n<0) return ; int i=0; int maxe=0x80000