问题如下;while(i!=i)
{
}i= 什么值时会死循环

解决方案 »

  1.   

    当i是一个自定义类对象,其比较运算符被重载了,!=总返回true的时候。
      

  2.   

    不是忽悠你们啊?
    真是microsoft的一道 面试题
      

  3.   

    1.i=microsoft
    2.i=忽悠
    3.i=0
    4.i=一道0分的微软面试题(求解)!
      

  4.   

    bool b = false;
    bool i
    {
    get
    {return b=!b;}
    }
      

  5.   

    我上面的答案错了。
    setdefault(山转水也转) ( )是对的。
      

  6.   

    int I=0;
    int i{
    get{
    return I++;
    }
    }
      

  7.   

    上面的办法是可以
    但是 如果累加超过范围 死循环不久出错了么...吧int i赋一个比int更大的值会怎么样  ...?
      

  8.   

    i一个类的对象,在类中重载!=运算符,让它返回Ture值即可.
      

  9.   

    waterine(waterine)
     当i是一个自定义类对象,其比较运算符被重载了,!=总返回true的时候。 (然而,题目问的是i= 什么值时会死循环,因此不能对!=做任何重载假定,故该解不成立)呵呵setdefault(山转水也转) 
     bool b = false;
    bool i
    {
    get
    {return b=!b;}
    }感觉此为正解
      

  10.   

    double.NaN按道理不会出这样的题目啊. 难道微软招人做CLR?另外如果你做一个属性int _i;
    public int i
    {
    get{return ++_i;}
    }这也会死的.
      

  11.   

    大公司的题目就是有深度,嘿嘿我的答案是:领导说i等于什么值都可以,只要我让i不等于i时就会死循环,但是我不会那么做的!
      

  12.   

    bool b = false;
    bool i
    {
    get
    {return b=!b;}
    }
    是的我也这么认为.
    一个属性,get中改变它的值
      

  13.   

    bool i;
    #define i (i = !i)
      

  14.   

    用宏也好用重载也好,都不是很正确,都是要依赖语言特性的或者取巧的嫌疑。
    如果浮点数处在非法范围里,这个比较应该是返回非零的。
    如下将一个double类型的i设置在非法区间就成了死循环了
    struct DoubleHSplit
    {
    DWORD F:20;
    DWORD E:11;
    DWORD S:1;
    };
    union DoubleSplitor
    {
    double dbdata;
    __int64 ddwdata;
    DWORD dwdata[2];
    DoubleHSplit ds[2];
    };
    DoubleSplitor dtmp ;
    dtmp.ds[1].S = 1;
    dtmp.ds[1].E = 2047;
    dtmp.ds[1].F = 1;
    dtmp.dwdata[0] = 0;
    double i = dtmp.dbdata;
      

  15.   

    #include <stdio.h>
    #include <stdlib.h>void main()
    {
        float i = atof("Nan");
        while(i != i) {
            printf("i!=i\n");
        }}
      

  16.   

    看来答案NaN贴切。下面是突发奇想,觉得挺有趣。NaN意思是“什么也不是”。所以出来下面的推论:
    NaN!=NaN               问:什么也不是不等于什么也不是么?
    false                   答:当然不等于
                            解释:如果“等于”那怎么还会叫“什么也不是”
    !@#$%^&*(               晕:既然什么也不是不等于什么也不是,那怎么是什么也不是呢?
                            
    setdefault:字典上说nan是一种巴基斯坦发酵面包,东部(等于号左)和西部(右)做的口味不一样
      

  17.   

    float.NaN != float.NaN
    晕死。这些家伙真变态~
      

  18.   

    float.NaN != float.NaN
    晕死。这些家伙真变态~
      

  19.   

    @setdefault(山转水也转) 正解:
    i是一个属性